Skip to content

HBASE-28403 Improve debugging for failures in procedure tests - #5709

Merged
ndimiduk merged 1 commit into
apache:masterfrom
ndimiduk:28403-debugging-failed-proc-tests
Feb 29, 2024
Merged

HBASE-28403 Improve debugging for failures in procedure tests#5709
ndimiduk merged 1 commit into
apache:masterfrom
ndimiduk:28403-debugging-failed-proc-tests

Conversation

@ndimiduk

Copy link
Copy Markdown
Member

No description provided.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 50sDocker mode activated.
_ Prechecks _
+1 💚dupname0m 1sNo case conflicting files found.
+1 💚hbaseanti0m 0sPatch does not have any anti-patterns.
+1 💚@author0m 0sThe patch does not contain any @author tags.
_ master Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for branch
+1 💚mvninstall3m 35smaster passed
+1 💚compile3m 52smaster passed
+1 💚checkstyle0m 57smaster passed
+1 💚spotless0m 46sbranch has no errors when running spotless:check.
+1 💚spotbugs2m 1smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 12sMaven dependency ordering for patch
+1 💚mvninstall3m 10sthe patch passed
+1 💚compile2m 48sthe patch passed
-0 ⚠️javac2m 26shbase-server generated 1 new + 194 unchanged - 1 fixed = 195 total (was 195)
+1 💚checkstyle0m 48sthe patch passed
+1 💚whitespace0m 0sThe patch has no whitespace issues.
+1 💚hadoopcheck4m 51sPatch does not cause any errors with Hadoop 3.3.6.
+1 💚spotless0m 42spatch has no errors when running spotless:check.
+1 💚spotbugs2m 12sthe patch passed
_ Other Tests _
+1 💚asflicense0m 21sThe patch does not generate ASF License warnings.
33m 55s
SubsystemReport/Notes
DockerClientAPI=1.44 ServerAPI=1.44 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5709/1/artifact/yetus-general-check/output/Dockerfile
GITHUB PR#5709
Optional Testsdupname asflicense javac spotbugs hadoopcheck hbaseanti spotless checkstyle compile
unameLinux 1b80673c4ead 5.4.0-169-generic #187-Ubuntu SMP Thu Nov 23 14:52:28 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / c4a02f7
Default JavaEclipse Adoptium-11.0.17+8
javachttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5709/1/artifact/yetus-general-check/output/diff-compile-javac-hbase-server.txt
Max. process+thread count81 (vs. ulimit of 30000)
modulesC: hbase-procedure hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5709/1/console
versionsgit=2.34.1 maven=3.8.6 spotbugs=4.7.3
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 26sDocker mode activated.
-0 ⚠️yetus0m 2sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 18sMaven dependency ordering for branch
+1 💚mvninstall3m 18smaster passed
+1 💚compile1m 1smaster passed
+1 💚shadedjars5m 55sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 37smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 13sMaven dependency ordering for patch
+1 💚mvninstall2m 57sthe patch passed
+1 💚compile1m 1sthe patch passed
+1 💚javac1m 1sthe patch passed
+1 💚shadedjars5m 58spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 35sthe patch passed
_ Other Tests _
+1 💚unit1m 34shbase-procedure in the patch passed.
+1 💚unit220m 14shbase-server in the patch passed.
248m 37s
SubsystemReport/Notes
DockerClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5709/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
GITHUB PR#5709
Optional Testsjavac javadoc unit shadedjars compile
unameLinux 7103928b067a 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / c4a02f7
Default JavaEclipse Adoptium-11.0.17+8
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5709/1/testReport/
Max. process+thread count5207 (vs. ulimit of 30000)
modulesC: hbase-procedure hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5709/1/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
+0 🆗reexec0m 42sDocker mode activated.
-0 ⚠️yetus0m 3sUnprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck
_ Prechecks _
_ master Compile Tests _
+0 🆗mvndep0m 11sMaven dependency ordering for branch
+1 💚mvninstall2m 39smaster passed
+1 💚compile0m 57smaster passed
+1 💚shadedjars5m 8sbranch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 38smaster passed
_ Patch Compile Tests _
+0 🆗mvndep0m 15sMaven dependency ordering for patch
+1 💚mvninstall2m 27sthe patch passed
+1 💚compile0m 57sthe patch passed
+1 💚javac0m 57sthe patch passed
+1 💚shadedjars5m 4spatch has no errors when building our shaded downstream artifacts.
+1 💚javadoc0m 37sthe patch passed
_ Other Tests _
+1 💚unit1m 27shbase-procedure in the patch passed.
+1 💚unit239m 42shbase-server in the patch passed.
265m 56s
SubsystemReport/Notes
DockerClientAPI=1.44 ServerAPI=1.44 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5709/1/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
GITHUB PR#5709
Optional Testsjavac javadoc unit shadedjars compile
unameLinux f70e3a3ecee5 5.4.0-169-generic #187-Ubuntu SMP Thu Nov 23 14:52:28 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitydev-support/hbase-personality.sh
git revisionmaster / c4a02f7
Default JavaTemurin-1.8.0_352-b08
Test Resultshttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5709/1/testReport/
Max. process+thread count5115 (vs. ulimit of 30000)
modulesC: hbase-procedure hbase-server U: .
Console outputhttps://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5709/1/console
versionsgit=2.34.1 maven=3.8.6
Powered byApache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

Preconditions.checkArgument(rollbackStack.isEmpty(), "rollback state not empty: %s",
rollbackStack);
Preconditions.checkArgument(procedures.isEmpty(), "procedure map not empty: %s", procedures);
Preconditions.checkArgument(scheduler.size() == 0, "scheduler queue not empty: %s", scheduler);

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

All this toString business is so that we can have meaningful output here.

@ndimiduk
ndimiduk merged commit 1e56034 into apache:masterFeb 29, 2024
@ndimiduk
ndimiduk deleted the 28403-debugging-failed-proc-tests branch February 29, 2024 11:06
@ndimiduk

Copy link
Copy Markdown
MemberAuthor

Thanks @Apache9

ndimiduk added a commit to ndimiduk/hbase that referenced this pull request Feb 29, 2024
…#5709)
We see unit test failures in Jenkins that look like this:
```
java.lang.IllegalArgumentException: run queue not empty
at org.apache.hbase.thirdparty.com.google.common.base.Preconditions.checkArgument(Preconditions.java:143)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.load(ProcedureExecutor.java:332)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.init(ProcedureExecutor.java:665)
at org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.restart(ProcedureTestingUtility.java:132)
at org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.restart(ProcedureTestingUtility.java:100)
at org.apache.hadoop.hbase.master.procedure.MasterProcedureTestingUtility.restartMasterProcedureExecutor(MasterProcedureTestingUtility.java:85)
at org.apache.hadoop.hbase.master.assignment.TestRollbackSCP.testFailAndRollback(TestRollbackSCP.java:180)
```
This isn't enough information to debug the situation. The test code in question looks reasonable
enough – it clears the object for re-use between tests. However, somewhere between
stop/clear/start we miss something. Add some toString implementations and dump the objects in the
preconditions.
Signed-off-by: Duo Zhang <zhangduo@apache.org>
ndimiduk added a commit to ndimiduk/hbase that referenced this pull request Feb 29, 2024
…#5709)
We see unit test failures in Jenkins that look like this:
```
java.lang.IllegalArgumentException: run queue not empty
at org.apache.hbase.thirdparty.com.google.common.base.Preconditions.checkArgument(Preconditions.java:143)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.load(ProcedureExecutor.java:332)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.init(ProcedureExecutor.java:665)
at org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.restart(ProcedureTestingUtility.java:132)
at org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.restart(ProcedureTestingUtility.java:100)
at org.apache.hadoop.hbase.master.procedure.MasterProcedureTestingUtility.restartMasterProcedureExecutor(MasterProcedureTestingUtility.java:85)
at org.apache.hadoop.hbase.master.assignment.TestRollbackSCP.testFailAndRollback(TestRollbackSCP.java:180)
```
This isn't enough information to debug the situation. The test code in question looks reasonable
enough – it clears the object for re-use between tests. However, somewhere between
stop/clear/start we miss something. Add some toString implementations and dump the objects in the
preconditions.
Signed-off-by: Duo Zhang <zhangduo@apache.org>
ndimiduk added a commit to ndimiduk/hbase that referenced this pull request Feb 29, 2024
…#5709)
We see unit test failures in Jenkins that look like this:
```
java.lang.IllegalArgumentException: run queue not empty
at org.apache.hbase.thirdparty.com.google.common.base.Preconditions.checkArgument(Preconditions.java:143)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.load(ProcedureExecutor.java:332)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.init(ProcedureExecutor.java:665)
at org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.restart(ProcedureTestingUtility.java:132)
at org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.restart(ProcedureTestingUtility.java:100)
at org.apache.hadoop.hbase.master.procedure.MasterProcedureTestingUtility.restartMasterProcedureExecutor(MasterProcedureTestingUtility.java:85)
at org.apache.hadoop.hbase.master.assignment.TestRollbackSCP.testFailAndRollback(TestRollbackSCP.java:180)
```
This isn't enough information to debug the situation. The test code in question looks reasonable
enough – it clears the object for re-use between tests. However, somewhere between
stop/clear/start we miss something. Add some toString implementations and dump the objects in the
preconditions.
Signed-off-by: Duo Zhang <zhangduo@apache.org>
ndimiduk added a commit that referenced this pull request Feb 29, 2024
We see unit test failures in Jenkins that look like this:
```
java.lang.IllegalArgumentException: run queue not empty
at org.apache.hbase.thirdparty.com.google.common.base.Preconditions.checkArgument(Preconditions.java:143)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.load(ProcedureExecutor.java:332)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.init(ProcedureExecutor.java:665)
at org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.restart(ProcedureTestingUtility.java:132)
at org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.restart(ProcedureTestingUtility.java:100)
at org.apache.hadoop.hbase.master.procedure.MasterProcedureTestingUtility.restartMasterProcedureExecutor(MasterProcedureTestingUtility.java:85)
at org.apache.hadoop.hbase.master.assignment.TestRollbackSCP.testFailAndRollback(TestRollbackSCP.java:180)
```
This isn't enough information to debug the situation. The test code in question looks reasonable
enough – it clears the object for re-use between tests. However, somewhere between
stop/clear/start we miss something. Add some toString implementations and dump the objects in the
preconditions.
Signed-off-by: Duo Zhang <zhangduo@apache.org>
ndimiduk added a commit that referenced this pull request Mar 1, 2024
We see unit test failures in Jenkins that look like this:
```
java.lang.IllegalArgumentException: run queue not empty
at org.apache.hbase.thirdparty.com.google.common.base.Preconditions.checkArgument(Preconditions.java:143)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.load(ProcedureExecutor.java:332)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.init(ProcedureExecutor.java:665)
at org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.restart(ProcedureTestingUtility.java:132)
at org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.restart(ProcedureTestingUtility.java:100)
at org.apache.hadoop.hbase.master.procedure.MasterProcedureTestingUtility.restartMasterProcedureExecutor(MasterProcedureTestingUtility.java:85)
at org.apache.hadoop.hbase.master.assignment.TestRollbackSCP.testFailAndRollback(TestRollbackSCP.java:180)
```
This isn't enough information to debug the situation. The test code in question looks reasonable
enough – it clears the object for re-use between tests. However, somewhere between
stop/clear/start we miss something. Add some toString implementations and dump the objects in the
preconditions.
Signed-off-by: Duo Zhang <zhangduo@apache.org>
ndimiduk added a commit that referenced this pull request Mar 1, 2024
We see unit test failures in Jenkins that look like this:
```
java.lang.IllegalArgumentException: run queue not empty
at org.apache.hbase.thirdparty.com.google.common.base.Preconditions.checkArgument(Preconditions.java:143)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.load(ProcedureExecutor.java:332)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.init(ProcedureExecutor.java:665)
at org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.restart(ProcedureTestingUtility.java:132)
at org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.restart(ProcedureTestingUtility.java:100)
at org.apache.hadoop.hbase.master.procedure.MasterProcedureTestingUtility.restartMasterProcedureExecutor(MasterProcedureTestingUtility.java:85)
at org.apache.hadoop.hbase.master.assignment.TestRollbackSCP.testFailAndRollback(TestRollbackSCP.java:180)
```
This isn't enough information to debug the situation. The test code in question looks reasonable
enough – it clears the object for re-use between tests. However, somewhere between
stop/clear/start we miss something. Add some toString implementations and dump the objects in the
preconditions.
Signed-off-by: Duo Zhang <zhangduo@apache.org>
ndimiduk added a commit to ndimiduk/hbase that referenced this pull request Mar 1, 2024
…#5709)
We see unit test failures in Jenkins that look like this:
```
java.lang.IllegalArgumentException: run queue not empty
at org.apache.hbase.thirdparty.com.google.common.base.Preconditions.checkArgument(Preconditions.java:143)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.load(ProcedureExecutor.java:332)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.init(ProcedureExecutor.java:665)
at org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.restart(ProcedureTestingUtility.java:132)
at org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.restart(ProcedureTestingUtility.java:100)
at org.apache.hadoop.hbase.master.procedure.MasterProcedureTestingUtility.restartMasterProcedureExecutor(MasterProcedureTestingUtility.java:85)
at org.apache.hadoop.hbase.master.assignment.TestRollbackSCP.testFailAndRollback(TestRollbackSCP.java:180)
```
This isn't enough information to debug the situation. The test code in question looks reasonable
enough – it clears the object for re-use between tests. However, somewhere between
stop/clear/start we miss something. Add some toString implementations and dump the objects in the
preconditions.
Signed-off-by: Duo Zhang <zhangduo@apache.org>
ndimiduk added a commit that referenced this pull request Mar 1, 2024
We see unit test failures in Jenkins that look like this:
```
java.lang.IllegalArgumentException: run queue not empty
at org.apache.hbase.thirdparty.com.google.common.base.Preconditions.checkArgument(Preconditions.java:143)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.load(ProcedureExecutor.java:332)
at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.init(ProcedureExecutor.java:665)
at org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.restart(ProcedureTestingUtility.java:132)
at org.apache.hadoop.hbase.procedure2.ProcedureTestingUtility.restart(ProcedureTestingUtility.java:100)
at org.apache.hadoop.hbase.master.procedure.MasterProcedureTestingUtility.restartMasterProcedureExecutor(MasterProcedureTestingUtility.java:85)
at org.apache.hadoop.hbase.master.assignment.TestRollbackSCP.testFailAndRollback(TestRollbackSCP.java:180)
```
This isn't enough information to debug the situation. The test code in question looks reasonable
enough – it clears the object for re-use between tests. However, somewhere between
stop/clear/start we miss something. Add some toString implementations and dump the objects in the
preconditions.
Signed-off-by: Duo Zhang <zhangduo@apache.org>
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.

3 participants

@ndimiduk@Apache-HBase@Apache9