Loyal-Young opened a new issue, #6463:
URL: https://github.com/apache/rocketmq-dashboard/issues/6463

   ### Component / reproduction
   
   `rocketmq-studio`, `MqClientPool.execute` and `MqAdminExtFactory.execute`.
   
   Both pool wrappers catch every checked exception from an admitted client 
action and turn it into a BusinessException. If a RocketMQ call throws 
InterruptedException (for example while waiting on a remoting semaphore), the 
JVM has cleared the thread's interrupt flag, and the wrapper never restores it.
   
   An interrupted operation therefore looks like an ordinary call failure to 
outer code that observes `Thread.currentThread().isInterrupted()`. This loses a 
cancellation/shutdown signal at the pool boundary. Other provider interruption 
paths already restore it.
   
   ### Proposed fix / regression
   
   Restore the interrupt flag when wrapping a direct InterruptedException from 
a pooled action. Keep the existing error code/message and lease-release 
behavior. Add producer, pull-consumer and admin regressions using a real 
interrupted blocking operation, plus ordinary-exception controls.
   
   I searched interruption/pool PRs and found no matching fix. AI assistance 
was used to trace the wrappers and draft this report.
   


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