-
Notifications
You must be signed in to change notification settings - Fork 3.4k
HBASE-28906 Run nightly tests with multiple Hadoop 3 versions #6356
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This comment has been minimized.
This comment has been minimized.
1 similar comment
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
1 similar comment
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
@@ -589,6 +609,7 @@ function hadoopcheck_rebuild | |||
fi | |||
|
|||
if [[ "${PATCH_BRANCH}" = *"branch-2.5"* ]]; then | |||
# TODO remove this on non 2.5 branches ? | |||
yetus_info "Setting Hadoop 3 versions to test based on branch-2.5 rules" | |||
if [[ "${QUICK_HADOOPCHECK}" == "true" ]]; then | |||
hbase_hadoop3_versions="3.2.4 3.3.6 3.4.0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we keep these version number lists managed in a single place? I guess that would be in the Jenkinsfile(s) (sob).
if [ -n "${TEST_PROFILE}" ]; then | ||
extra="${extra} -P${TEST_PROFILE}" | ||
else | ||
extra="${extra} -PrunAllTests" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: fold "runAllTests" in to a default value for this variable at declaration time and then you can set extra
unconditionally.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The parameter parsing is already cryptic (for a bash hater like me), adding a default value there would be even more cryptic IMO (and disturb the current relatively easy-to read option processing pattern) .
for (hadoop3_version in hadoop3_versions) { | ||
env.HADOOP3_VERSION = hadoop3_version; | ||
echo "env.HADOOP3_VERSION" + env.hadoop3_version; | ||
stage ('Hadoop 3 cache inner stage') { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Generating stages from a script. Ouch. Yeah, okay.
I agree that this is not very nice, but this was least invasive solution I could think of. IF we were to stay on Jenkins, then it would be worth either converting all Hadoop tests to a single monster Matrix stage, or the whole Jenkinesfile to a fully scripted pipeline, but hopefully this will only be needed for a few months, and we can spend the effort to convert to GH actions instead. |
I found the declarative version of these files to be more readable and maintainable than the scripted versions... Don't hold your breath on a GA implementation anytime soon. Infra hasn't acknowledged my ticket yet. |
if [[ "${QUICK_HADOOPCHECK}" == "true" ]]; then | ||
hbase_hadoop3_versions="3.3.6 3.4.0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can see the pattern, actually we will use the latest one for a minor release line for quick hadoop check...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
I agree, defining the Hadoop versions both in the personality file and the Jenkinsfile is far from ideal. We could remove those from the personality, and pass a parameter from the Jenkinsfile, but then we'd have to define them both in the nigthly and precommit jenkinsfiles, so we'd have to maintain two copies either way. Or we could have some kind of include file that is ready by both Jenkins and Yetus. That way it would be in one place, but we'd have to add additional logic to parse that in multiple places. What is your planned release timeline, @Apache9 ? Should we spend some more weeks on this ? The turnaround time for testing these changes is horribly long, basically one run / day. |
Have you seen my last review comment? In general this is a workable solution. The only thing is about the hadoop quick check version. We have already build with 3.3.5 by default, so for hadoop quick check, we'd better test the newest one instead of testing 3.3.5 again... |
This comment has been minimized.
This comment has been minimized.
1 similar comment
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
(!) A patch to the testing environment has been detected. |
1 similar comment
(!) A patch to the testing environment has been detected. |
🎊 +1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
Merged to master. I'm goint to wait for at least one nightly run before beginning the backports. |
…#6399) includes HBASE-28929 Set hadoop-three.version in Hadoop 3 backwards compatibility tests includes addendum: workaround for MAPREDUCE-7492 Signed-off-by: Nick Dimiduk <ndimiduk@apache.org> Signed-off-by: Duo Zhang <zhangduo@apache.org> (cherry picked from commit 4be7e39)
…#6399) includes HBASE-28929 Set hadoop-three.version in Hadoop 3 backwards compatibility tests includes addendum: workaround for MAPREDUCE-7492 Signed-off-by: Nick Dimiduk <ndimiduk@apache.org> Signed-off-by: Duo Zhang <zhangduo@apache.org> (cherry picked from commit 4be7e39)
…#6356) (apache#6399) includes HBASE-28929 Set hadoop-three.version in Hadoop 3 backwards compatibility tests includes addendum: workaround for MAPREDUCE-7492 includes HBASE-28940 Do not run the backwards compatibility tests with the default Hadoop3 version Signed-off-by: Nick Dimiduk <ndimiduk@apache.org> Signed-off-by: Duo Zhang <zhangduo@apache.org> (cherry picked from commit 4be7e39)
The nightly tests won't run on this PR.
See https://ci-hbase.apache.org/job/Test%20script%20for%20nightly%20script/job/HBASE-28846/
for the hacked-up test PR which tests the contents of this change