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]
