HBASE-17863-addendum: Reverted the order of updateStoreOnExec() and store.isRunning() in execProcedure()
Change-Id: I1c9d5ee264f4f593a6b2a09011853ab63693f677
This commit is contained in:
parent
18c5ecf6ed
commit
59e8b8e2ba
|
@ -1373,12 +1373,17 @@ public class ProcedureExecutor<TEnvironment> {
|
|||
return;
|
||||
}
|
||||
|
||||
// if the store is not running we are aborting
|
||||
if (!store.isRunning()) return;
|
||||
|
||||
// TODO: The code here doesn't check if store is running before persisting to the store as
|
||||
// it relies on the method call below to throw RuntimeException to wind up the stack and
|
||||
// executor thread to stop. The statement following the method call below seems to check if
|
||||
// store is not running, to prevent scheduling children procedures, re-execution or yield
|
||||
// of this procedure. This may need more scrutiny and subsequent cleanup in future
|
||||
// Commit the transaction
|
||||
updateStoreOnExec(procStack, procedure, subprocs);
|
||||
|
||||
// if the store is not running we are aborting
|
||||
if (!store.isRunning()) return;
|
||||
|
||||
// if the procedure is kind enough to pass the slot to someone else, yield
|
||||
if (procedure.isRunnable() && !suspended &&
|
||||
procedure.isYieldAfterExecutionStep(getEnvironment())) {
|
||||
|
|
|
@ -408,7 +408,7 @@ public class ProcedureTestingUtility {
|
|||
addStackIndex(index);
|
||||
}
|
||||
|
||||
public void setFinishedState() {
|
||||
public void setSuccessState() {
|
||||
setState(ProcedureState.SUCCESS);
|
||||
}
|
||||
|
||||
|
|
|
@ -26,7 +26,6 @@ import java.util.ArrayList;
|
|||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
|
@ -785,7 +784,7 @@ public class TestWALProcedureStore {
|
|||
|
||||
// back to A
|
||||
a.addStackId(5);
|
||||
a.setFinishedState();
|
||||
a.setSuccessState();
|
||||
procStore.delete(a, new long[] { b.getProcId(), c.getProcId() });
|
||||
restartAndAssert(3, 0, 1, 0);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue