You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "stack (JIRA)" <ji...@apache.org> on 2018/07/30 17:50:00 UTC
[jira] [Created] (HBASE-20981) Rollback stateCount accounting
thrown-off when exception out of rollbackState
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)