mnpoonia opened a new pull request, #8677:
URL: https://github.com/apache/hbase/pull/8677

   ## Summary
   - Backport of the master fix (HBASE-30357) to branch-2.
   - `OpenRegionProcedure#restoreSucceedState` was ignoring the persisted 
`TransitionCode`, always forcing the region state to OPEN on master-restart 
restore even when the persisted transition was actually `FAILED_OPEN`. Now 
checks `transitionCode == FAILED_OPEN` and calls 
`am.regionFailedOpen(regionNode, false)`, matching the live `reportTransition` 
path.
   - Threaded `TransitionCode` through 
`RegionRemoteProcedureBase#restoreSucceedState`/`stateLoaded` so both 
`OpenRegionProcedure` and `CloseRegionProcedure` receive it (close has no 
failure variant, so it's unused there).
   - Added `TestOpenRegionProcedureRestoreFailedOpen`, which restarts a real 
`ProcedureExecutor` to reproduce the crash window.
   
   ## Test plan
   - [x] Ported test compiles against branch-2 APIs (`HBaseTestingUtility`, 
JUnit5 `HBaseJupiterExtension`).
   - [ ] Note: local run of the new test on this branch-2 checkout (JDK8 + 
`-Dhadoop.profile=3.0`) is flaky due to a pre-existing race in the test's 
synchronization (a non-interruptible `regionNode.lock()` held across an RPC 
call can deadlock with `ProcedureExecutor#stop()/join()` until a 30s await 
times out); this race is inherited from the already-merged master version of 
this test and is being tracked separately rather than fixed in this backport.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to