123123213weqw opened a new pull request, #6839:
URL: https://github.com/apache/rocketmq-dashboard/pull/6839

   Fixes #6463.
   
   Both pooled RocketMQ action wrappers (`MqClientPool.execute` and 
`MqAdminExtFactory.execute`) caught an `InterruptedException` from an admitted 
action in their generic `catch (Exception)` and rewrapped it as 
`BusinessException` without restoring the interrupt flag the JVM had cleared — 
cancellation and shutdown signals died at the pool boundary, so pooled worker 
threads never saw the interrupt.
   
   Both wrappers now restore the flag via `Thread.currentThread().interrupt()` 
before wrapping, leaving the error code, message and lease release untouched.
   
   Red-first: three new interruption regressions (producer, pull consumer, 
admin) run the pooled action on a virtual thread, block on a real latch, 
interrupt the caller, and assert the wrapper still throws the existing 
`BusinessException` while the calling thread's interrupt flag survives and the 
lease is released — all three fail on the old code; ordinary-exception controls 
prove the flag stays unset for non-interrupt failures. `MqClientPoolTest` 
23/23, `MqAdminExtFactoryTest` 18/18.
   


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