Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.0.1
-
None
-
Reviewed
Description
Found by might allan163 over in HBASE-20893. Quoting Allan:
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.
Attachments
Attachments
Issue Links
- is related to
-
HBASE-20893 Data loss if splitting region while ServerCrashProcedure executing
- Resolved
There are no Sub-Tasks for this issue.