Revert "HBASE-21323 Should not skip force updating for a sub procedure even if it has been finished"
This reverts commit fef4fb36bfbc09d09809dfbafbad16b7284ea833. Revert till we figure why 2.1 behaves differently to 2.2 Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/d160139e Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/d160139e Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/d160139e Branch: refs/heads/branch-2.0 Commit: d160139ea7042269fef3040c05188aa5f17570b2 Parents: cf9e24c Author: Michael Stack <[email protected]> Authored: Thu Oct 18 20:05:27 2018 -0700 Committer: Michael Stack <[email protected]> Committed: Thu Oct 18 20:05:27 2018 -0700 ---------------------------------------------------------------------- .../hbase/procedure2/ProcedureExecutor.java | 9 +----- .../store/wal/TestForceUpdateProcedure.java | 33 ++------------------ 2 files changed, 3 insertions(+), 39 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/d160139e/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java ---------------------------------------------------------------------- diff --git a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java index faad84e..d267c19 100644 --- a/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java +++ b/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/ProcedureExecutor.java @@ -368,11 +368,6 @@ public class ProcedureExecutor<TEnvironment> { this(conf, environment, store, new SimpleProcedureScheduler()); } - private boolean isRootFinished(Procedure<?> proc) { - Procedure<?> rootProc = procedures.get(proc.getRootProcId()); - return rootProc == null || rootProc.isFinished(); - } - private void forceUpdateProcedure(long procId) throws IOException { IdLock.Entry lockEntry = procExecutionLock.getLockEntry(procId); try { @@ -381,9 +376,7 @@ public class ProcedureExecutor<TEnvironment> { LOG.debug("No pending procedure with id = {}, skip force updating.", procId); return; } - // For a sub procedure which root parent has not been finished, we still need to retain the - // wal even if the procedure itself is finished. - if (proc.isFinished() && (!proc.hasParent() || isRootFinished(proc))) { + if (proc.isFinished()) { LOG.debug("Procedure {} has already been finished, skip force updating.", proc); return; } http://git-wip-us.apache.org/repos/asf/hbase/blob/d160139e/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/TestForceUpdateProcedure.java ---------------------------------------------------------------------- diff --git a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/TestForceUpdateProcedure.java b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/TestForceUpdateProcedure.java index eb68955..1e27158 100644 --- a/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/TestForceUpdateProcedure.java +++ b/hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/store/wal/TestForceUpdateProcedure.java @@ -123,34 +123,7 @@ public class TestForceUpdateProcedure { @Override protected Procedure<Void>[] execute(Void env) throws ProcedureYieldException, ProcedureSuspendedException, InterruptedException { - return new Procedure[] { new DummyProcedure(), new WaitingProcedure() }; - } - - @Override - protected void rollback(Void env) throws IOException, InterruptedException { - throw new UnsupportedOperationException(); - } - - @Override - protected boolean abort(Void env) { - return false; - } - - @Override - protected void serializeStateData(ProcedureStateSerializer serializer) throws IOException { - } - - @Override - protected void deserializeStateData(ProcedureStateSerializer serializer) throws IOException { - } - } - - public static final class DummyProcedure extends Procedure<Void> { - - @Override - protected Procedure<Void>[] execute(Void env) - throws ProcedureYieldException, ProcedureSuspendedException, InterruptedException { - return null; + return new Procedure[] { new WaitingProcedure() }; } @Override @@ -236,12 +209,10 @@ public class TestForceUpdateProcedure { Map<Class<?>, Procedure<Void>> procMap = new HashMap<>(); EXEC.getProcedures().stream().filter(p -> !p.isFinished()) .forEach(p -> procMap.put(p.getClass(), p)); - assertEquals(3, procMap.size()); + assertEquals(2, procMap.size()); ParentProcedure parentProc = (ParentProcedure) procMap.get(ParentProcedure.class); assertEquals(ProcedureState.WAITING, parentProc.getState()); WaitingProcedure waitingProc = (WaitingProcedure) procMap.get(WaitingProcedure.class); assertEquals(ProcedureState.WAITING_TIMEOUT, waitingProc.getState()); - DummyProcedure dummyProc = (DummyProcedure) procMap.get(DummyProcedure.class); - assertEquals(ProcedureState.SUCCESS, dummyProc.getState()); } }
