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]

Reply via email to