RockteMQ-AI commented on issue #11393:
URL: https://github.com/apache/rocketmq/issues/11393#issuecomment-6137993042

   **Issue Evaluation**
   
   Category: `type/bug` | Status: **Confirmed**
   
   The reported issue has been verified against the current codebase.
   
   **Root Cause:** `DefaultReceiptHandleManager` creates two thread pools 
(`renewalWorkerService` and `returnHandleGroupWorkerService`) in its 
constructor, but the `shutdown()` method only shuts down the 
`scheduledExecutorService`. The two worker pools are never shut down, and their 
threads are not daemons (no `setDaemon(true)` in the thread factory).
   
   **Impact:** Proxy module — thread leak on shutdown/restart. Up to 
`renewThreadPoolNums + returnHandleGroupThreadPoolNums` (defaults 2+2) threads 
plus their queued tasks keep running after the manager is shut down, 
potentially accessing services that are being torn down.
   
   **Severity:** Medium — affects in-JVM proxy restart scenarios (embedded use, 
integration tests)
   
   **Verified locations:**
   - 
`proxy/src/main/java/org/apache/rocketmq/proxy/service/receipt/DefaultReceiptHandleManager.java:80,87`
 — pool creation
   - 
`proxy/src/main/java/org/apache/rocketmq/proxy/service/receipt/DefaultReceiptHandleManager.java:128-129`
 — incomplete shutdown
   - `ThreadPoolMonitor.java` — thread factory without daemon mode
   
   An automated fix proposal will be generated. Reply `/approve` to proceed 
with PR generation.
   
   ---
   *Automated evaluation by github-manager-bot*


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