RockteMQ-AI commented on issue #11354: URL: https://github.com/apache/rocketmq/issues/11354#issuecomment-6110394221
**Issue Evaluation** Category: `type/bug` | Status: **Confirmed** The tombstone reclaim gap is well-analyzed. The three cleanup paths all require either client action or presence in `client2Subscription` — once the evicted client's last liteTopic is removed and the client goes away without sending `COMPLETE_REMOVE`, the tombstone entry becomes unreachable for cleanup. **Root Cause:** `excludeClientByLmqName` removes the `LiteSubscription` from `client2Subscription` when the evicted client's last liteTopic is taken, making the tombstone entry orphaned. The expiry cleaner `cleanupExpiredSubscriptions` only walks `client2Subscription`, so it cannot see the orphaned tombstone. **Impact:** O(number of takeovers) memory leak of `clientId$lmqName` keys in `ExclusiveEvictionTombstones` over the broker's lifetime. On brokers with regular exclusive-mode client churn (autoscaling, rolling restarts), this is a grow-only counter. **Severity:** Medium — memory leak under specific churn conditions, not immediate data loss. An automated fix proposal can be generated. Reply `/approve` to proceed with PR generation. --- *Automated evaluation by RocketMQ-AI* -- 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]
