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());
   }
 }

Reply via email to