Revert "HBASE-21323 Should not skip force updating for a sub procedure even if it has been finished"
This reverts commit fffd9b9b6dd42c52f4a30e956313cdb4129c66be. Revert till we figure why behavior between 2.1 and 2.2 is different. Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/0cd23c3d Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/0cd23c3d Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/0cd23c3d Branch: refs/heads/branch-2.1 Commit: 0cd23c3dda1d0cfd1632aa609c4a269c5724cf38 Parents: 8fd3fd0 Author: Michael Stack <[email protected]> Authored: Thu Oct 18 20:04:24 2018 -0700 Committer: Michael Stack <[email protected]> Committed: Thu Oct 18 20:04:24 2018 -0700 ---------------------------------------------------------------------- .../hbase/procedure2/ProcedureExecutor.java | 9 +---- .../store/wal/TestForceUpdateProcedure.java | 35 ++------------------ 2 files changed, 4 insertions(+), 40 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/0cd23c3d/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 890baf2..6542cc6 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/0cd23c3d/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..da67fd2 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 @@ -235,13 +208,11 @@ public class TestForceUpdateProcedure { createStoreAndExecutor(); 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()); + .forEach(p -> procMap.put(p.getClass(), p)); + 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()); } }
