Skip to content

HBASE-28906 Run nightly tests with multiple Hadoop 3 versions - #6356

Merged
stoty merged 4 commits into
apache:masterfrom
stoty:HBASE-28906
Oct 18, 2024
Merged

HBASE-28906 Run nightly tests with multiple Hadoop 3 versions#6356
stoty merged 4 commits into
apache:masterfrom
stoty:HBASE-28906

Conversation

@stoty

@stotystoty commented Oct 8, 2024

Copy link
Copy Markdown
Contributor

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

@stoty
stoty requested review from Apache9 and ndimidukOctober 8, 2024 13:22
@Apache-HBase

This comment has been minimized.

1 similar comment
@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

1 similar comment
@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

# 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"

Copy link
Copy Markdown
Member

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"

Copy link
Copy Markdown
Member

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.

Copy link
Copy Markdown
ContributorAuthor

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') {

Copy link
Copy Markdown
Member

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.

@stoty

Copy link
Copy Markdown
ContributorAuthor

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.

@ndimiduk

Copy link
Copy Markdown
Member

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.

yetus_info "Setting Hadoop 3 versions to test based on branch-2.6+/master/feature branch rules"
# Isn't runnung these tests with the default Hadoop version redundant ?
if [[ "${QUICK_HADOOPCHECK}" == "true" ]]; then
hbase_hadoop3_versions="3.3.6 3.4.0"

Copy link
Copy Markdown
Contributor

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...

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@stoty

stoty commented Oct 14, 2024

Copy link
Copy Markdown
ContributorAuthor

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.

@Apache9

Copy link
Copy Markdown
Contributor

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...

@Apache-HBase

This comment has been minimized.

1 similar comment
@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

This comment has been minimized.

@Apache-HBase

Copy link
Copy Markdown

(!) A patch to the testing environment has been detected.
Re-executing against the patched versions to perform further tests.
The console is at https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6356/4/console in case of problems.

1 similar comment
@Apache-HBase

Copy link
Copy Markdown

(!) A patch to the testing environment has been detected.
Re-executing against the patched versions to perform further tests.
The console is at https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6356/4/console in case of problems.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeLogfileComment
+0 🆗reexec0m 38sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --author-ignore-list --blanks-eol-ignore-file --blanks-tabs-ignore-file --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 5sMaven dependency ordering for branch
_ Patch Compile Tests _
+0 🆗mvndep0m 5sMaven dependency ordering for patch
_ Other Tests _
1m 32s
SubsystemReport/Notes
DockerClientAPI=1.47 ServerAPI=1.47 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6356/4/artifact/yetus-jdk17-hadoop3-check/output/Dockerfile
GITHUB PR#6356
Optional Tests
unameLinux b4fa4a748ae4 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 245bea4
Max. process+thread count35 (vs. ulimit of 30000)
modulesC: U:
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6356/4/console
versionsgit=2.34.1 maven=3.9.8
Powered byApache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeLogfileComment
+0 🆗reexec0m 16sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 0sNo case conflicting files found.
+0 🆗codespell0m 0scodespell was not available.
+0 🆗detsecrets0m 0sdetect-secrets was not available.
+0 🆗shelldocs0m 0sShelldocs was not available.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗mvndep0m 5sMaven dependency ordering for branch
+1 💚spotless0m 40sbranch has no errors when running spotless:check.
_ Patch Compile Tests _
+0 🆗mvndep0m 5sMaven dependency ordering for patch
+1 💚blanks0m 0sThe patch has no blanks issues.
+1 💚shellcheck0m 1sNo new issues.
+1 💚spotless0m 39spatch has no errors when running spotless:check.
_ Other Tests _
+0 🆗asflicense0m 0sASF License check generated no output?
2m 40s
SubsystemReport/Notes
DockerClientAPI=1.47 ServerAPI=1.47 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6356/4/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#6356
Optional Testsdupname asflicense codespell detsecrets shellcheck shelldocs spotless
unameLinux 017af88a8f70 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / 245bea4
Max. process+thread count47 (vs. ulimit of 30000)
modulesC: U:
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-6356/4/console
versionsgit=2.34.1 maven=3.9.8 shellcheck=0.8.0
Powered byApache Yetus 0.15.0 https://yetus.apache.org

This message was automatically generated.

@stoty
stoty merged commit 4be7e39 into apache:masterOct 18, 2024
@stoty

Copy link
Copy Markdown
ContributorAuthor

Merged to master.

I'm goint to wait for at least one nightly run before beginning the backports.

stoty added a commit to stoty/hbase that referenced this pull request Oct 24, 2024
…#6356)
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>
(cherry picked from commit 4be7e39)
stoty added a commit to stoty/hbase that referenced this pull request Oct 25, 2024
…#6356)
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>
(cherry picked from commit 4be7e39)
stoty added a commit that referenced this pull request Oct 27, 2024
…#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)
stoty added a commit that referenced this pull request Oct 28, 2024
…#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)
stoty added a commit to stoty/hbase that referenced this pull request Oct 30, 2024
…#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)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@stoty@Apache-HBase@ndimiduk@Apache9