@Test
  public void testChildRollbackLoadWithSteppedRestart() throws Exception {
    procEnv.toggleKillBeforeStoreUpdate = true;
    procEnv.triggerRollbackOnChild = true;

    TestRootProcedure proc = new TestRootProcedure();
    long procId = ProcedureTestingUtility.submitAndWait(procExecutor, proc);
    int restartCount = 0;
    while (!procExecutor.isFinished(procId)) {
      ProcedureTestingUtility.restart(procExecutor);
      ProcedureTestingUtility.waitProcedure(procExecutor, proc);
      restartCount++;
    }
    assertEquals(2, restartCount);
    assertProcFailed(procId);
  }
Test the state setting that happens after store to WAL; in particular the bit where we set the
parent runnable again after its children have all completed successfully. See HBASE-20978.
hbase-procedure/src/test/java/org/apache/hadoop/hbase/procedure2/TestChildProcedures.java