RockteMQ-AI commented on issue #11039: URL: https://github.com/apache/rocketmq/issues/11039#issuecomment-5552037320
**Issue Evaluation** Category: `bug` | Status: **Confirmed** The missing channel attribute tracking in `registerConsumerWithoutSub` is verified against the current codebase: - `ConsumerManager.java:267` — `registerConsumer` calls `ClientChannelAttributeHelper.addConsumerGroup(channel, group)` ✓ - `ConsumerManager.java:279` — `registerConsumerWithoutSub` does **not** call `addConsumerGroup` ✗ - `doChannelCloseEvent` fast path iterates `getConsumerGroups(channel)` → gets empty list → skips cleanup This means consumers registered via heartbeat-v2 withoutSub (the common case for reconnecting clients with unchanged subscription fingerprints) are never cleaned up by the fast channel-close path. They linger in `consumerTable` for up to `channelExpiredTimeout` (120s default). Additionally, a subsequent full heartbeat cannot repair this because `updateChannel` returns false for already-registered channels, so the `r1`-guarded `addConsumerGroup` in `registerConsumer` is never reached. **Severity:** Medium — stale consumer entries delay UNREGISTER notifications and pollute connection queries **Impact:** ConsumerManager, ConsumerFilterManager, consumer connection list APIs Fix PR #11040 correctly adds the `addConsumerGroup` call to `registerConsumerWithoutSub`. --- *Automated evaluation by github-manager* -- 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]
