stack created HBASE-20981: ----------------------------- Summary: Rollback stateCount accounting thrown-off when exception out of rollbackState Key: HBASE-20981 URL: https://issues.apache.org/jira/browse/HBASE-20981 Project: HBase Issue Type: Bug Components: amv2 Affects Versions: 2.0.1 Reporter: stack Fix For: 2.0.2
Found by might [~allan163] over in HBASE-20893. Quoting Allan: {code} But, there is truly a bug here, @Override protected void rollback(final TEnvironment env) throws IOException, InterruptedException { if (isEofState()) stateCount--; try { updateTimestamp(); rollbackState(env, getCurrentState()); stateCount--; } finally { updateTimestamp(); } } We need to decrease the stateCount when rolling back, so we can rollback for the previous state correctly. But. since a exception is thrown, the decrease for stateCount never happen. So ProcedureExecutor will continue to rollback for only one state(the one throw a exception) until the end of the execution stack. {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)