mnpoonia commented on PR #8677:
URL: https://github.com/apache/hbase/pull/8677#issuecomment-5764035038

   @Apache9 Yes, the test can not run reliably on branch-2.
   
   This test reproduces a real crash window: the RPC-handler thread holds the 
`RegionStateNode` lock while the master's `ProcedureExecutor` restarts, 
simulating a failover mid-transition.
   
   On master, HBASE-28199/HBASE-28240 replaced `RegionStateNode`'s plain 
`ReentrantLock` with a suspend-capable `RegionStateNodeLock`, so a contended 
lock suspends the procedure instead of blocking the worker thread - 
`ProcedureExecutor.stop()` joins cleanly.
   
   Branch-2 never got that backport, so the same setup deadlocks for real: the 
`PEWorker` blocks on the lock, `stop()` blocks on the worker, and the 
RPC-handler blocks on the main thread - broken only by the test's 30s timeout 
unwinding it. The test "passing" on branch-2 depends on hitting that timeout 
every run, not on any deterministic fix logic, so it isn't a meaningful 
regression test there.
   
   Backporting the suspend-lock redesign is out of scope for this JIRA (it 
spans `RegionStateNode`, `RegionRemoteProcedureBase`, 
`TransitRegionStateProcedure`, likely SCP too). Restructuring the test to dodge 
the deadlock would exercise branch-2's old synchronous meta-update path 
concurrently - an unverified path master never hits, so it wouldn't provide 
equivalent coverage.
   
   Per @virajjasani's suggestion, I've added `@Disabled` on the branch-2 test 
with a comment documenting the missing backport, rather than keeping a test 
whose pass/fail is really just a timeout race.


-- 
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