[ https://issues.apache.org/jira/browse/HBASE-21291?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16648834#comment-16648834 ]
Hadoop QA commented on HBASE-21291: ----------------------------------- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 11s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} hbaseanti {color} | {color:green} 0m 0s{color} | {color:green} Patch does not have any anti-patterns. {color} | | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s{color} | {color:green} The patch appears to include 2 new or modified test files. {color} | || || || || {color:brown} master Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 26s{color} | {color:blue} Maven dependency ordering for branch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 5m 6s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 6m 6s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 2m 11s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} shadedjars {color} | {color:green} 4m 18s{color} | {color:green} branch has no errors when building our shaded downstream artifacts. {color} | | {color:blue}0{color} | {color:blue} findbugs {color} | {color:blue} 0m 0s{color} | {color:blue} Skipped patched modules with no Java source: . {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 0m 24s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 2m 48s{color} | {color:green} master passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 12s{color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 4m 56s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 6m 10s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 6m 10s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 2m 11s{color} | {color:green} the patch passed {color} | | {color:red}-1{color} | {color:red} whitespace {color} | {color:red} 0m 0s{color} | {color:red} The patch has 13 line(s) that end in whitespace. Use git apply --whitespace=fix <<patch_file>>. Refer https://git-scm.com/docs/git-apply {color} | | {color:red}-1{color} | {color:red} shadedjars {color} | {color:red} 0m 10s{color} | {color:red} patch has 7 errors when building our shaded downstream artifacts. {color} | | {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 10m 41s{color} | {color:green} Patch does not cause any errors with Hadoop 2.7.4 or 3.0.0. {color} | | {color:blue}0{color} | {color:blue} findbugs {color} | {color:blue} 0m 0s{color} | {color:blue} Skipped patched modules with no Java source: . {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 0m 32s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 2m 49s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:red}-1{color} | {color:red} unit {color} | {color:red}129m 29s{color} | {color:red} root in the patch failed. {color} | | {color:red}-1{color} | {color:red} asflicense {color} | {color:red} 0m 46s{color} | {color:red} The patch generated 1 ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black}180m 2s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | Failed junit tests | hadoop.hbase.client.TestBlockEvictionFromClient | \\ \\ || Subsystem || Report/Notes || | Docker | Client=17.05.0-ce Server=17.05.0-ce Image:yetus/hbase:b002b0b | | JIRA Issue | HBASE-21291 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12943746/HBASE-21291.master.005.patch | | Optional Tests | dupname asflicense javac javadoc unit findbugs shadedjars hadoopcheck hbaseanti checkstyle compile | | uname | Linux 4045ce499342 3.13.0-143-generic #192-Ubuntu SMP Tue Feb 27 10:45:36 UTC 2018 x86_64 GNU/Linux | | Build tool | maven | | Personality | /home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build/component/dev-support/hbase-personality.sh | | git revision | master / 7464e2ef9d | | maven | version: Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T18:33:14Z) | | Default Java | 1.8.0_181 | | findbugs | v3.1.0-RC3 | | whitespace | https://builds.apache.org/job/PreCommit-HBASE-Build/14684/artifact/patchprocess/whitespace-eol.txt | | shadedjars | https://builds.apache.org/job/PreCommit-HBASE-Build/14684/artifact/patchprocess/patch-shadedjars.txt | | unit | https://builds.apache.org/job/PreCommit-HBASE-Build/14684/artifact/patchprocess/patch-unit-root.txt | | Test Results | https://builds.apache.org/job/PreCommit-HBASE-Build/14684/testReport/ | | asflicense | https://builds.apache.org/job/PreCommit-HBASE-Build/14684/artifact/patchprocess/patch-asflicense-problems.txt | | Max. process+thread count | 4745 (vs. ulimit of 10000) | | modules | C: hbase-procedure . U: . | | Console output | https://builds.apache.org/job/PreCommit-HBASE-Build/14684/console | | Powered by | Apache Yetus 0.8.0 http://yetus.apache.org | This message was automatically generated. > Add a test for bypassing stuck state-machine procedures > ------------------------------------------------------- > > Key: HBASE-21291 > URL: https://issues.apache.org/jira/browse/HBASE-21291 > Project: HBase > Issue Type: Bug > Affects Versions: 2.2.0 > Reporter: Jingyun Tian > Assignee: Jingyun Tian > Priority: Major > Attachments: HBASE-21291.master.001.patch, > HBASE-21291.master.002.patch, HBASE-21291.master.003.patch, > HBASE-21291.master.004.patch, HBASE-21291.master.005.patch > > > {code} > if (!procedure.isFailed()) { > if (subprocs != null) { > if (subprocs.length == 1 && subprocs[0] == procedure) { > // Procedure returned itself. Quick-shortcut for a state > machine-like procedure; > // i.e. we go around this loop again rather than go back out on > the scheduler queue. > subprocs = null; > reExecute = true; > LOG.trace("Short-circuit to next step on pid={}", > procedure.getProcId()); > } else { > // Yield the current procedure, and make the subprocedure runnable > // subprocs may come back 'null'. > subprocs = initializeChildren(procStack, procedure, subprocs); > LOG.info("Initialized subprocedures=" + > (subprocs == null? null: > Stream.of(subprocs).map(e -> "{" + e.toString() + "}"). > collect(Collectors.toList()).toString())); > } > } else if (procedure.getState() == ProcedureState.WAITING_TIMEOUT) { > LOG.debug("Added to timeoutExecutor {}", procedure); > timeoutExecutor.add(procedure); > } else if (!suspended) { > // No subtask, so we are done > procedure.setState(ProcedureState.SUCCESS); > } > } > {code} > Currently implementation of ProcedureExecutor will set the reExcecute to true > for state machine like procedure. Then if this procedure is stuck at one > certain state, it will loop forever. > {code} > IdLock.Entry lockEntry = > procExecutionLock.getLockEntry(proc.getProcId()); > try { > executeProcedure(proc); > } catch (AssertionError e) { > LOG.info("ASSERT pid=" + proc.getProcId(), e); > throw e; > } finally { > procExecutionLock.releaseLockEntry(lockEntry); > {code} > Since procedure will get the IdLock and release it after execution done, > state machine procedure will never release IdLock until it is finished. > Then bypassProcedure doesn't work because is will try to grab the IdLock at > first. > {code} > IdLock.Entry lockEntry = > procExecutionLock.tryLockEntry(procedure.getProcId(), lockWait); > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)