You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2018/10/19 03:04:47 UTC
[2/2] hbase git commit: Revert "HBASE-21323 Should not skip force
updating for a sub procedure even if it has been finished"
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 <st...@apache.org>
Authored: Thu Oct 18 20:04:24 2018 -0700
Committer: Michael Stack <st...@apache.org>
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());
}
}