unbridled-41 opened a new issue, #5957:
URL: https://github.com/apache/rocketmq-dashboard/issues/5957

   ### Studio Version
   branch: `rocketmq-studio` @ `7e7aa344` (the revision verified; the branch is 
based on it)
   deployed as: not required to reproduce
   
   ### Runtime Environment
   
   Reproduced with the backend tests (`cd server && mvn -o -B -ntp test 
-Dtest='ProxyConsumerResolverTest'`).
   
   ### Connected RocketMQ Cluster
   
   A gRPC (proxy) cluster with more than one proxy and a consumer group whose 
clients are spread across them.
   
   ### Describe the Bug
   
   `ProxyConsumerResolver.resolveConsumerConnectionStatus` asks each discovered 
proxy for the group's connections and returns as soon as one answers:
   
   ```java
   if (result.connection() != null) {
       return ConsumerConnectionResolution.available(result.connection());
   }
   ```
   
   Each proxy knows only the clients connected to it, so the group's connection 
set, subscription table and channel list were reported from a single proxy as 
if it were the whole group. Consumers: the group list (`instances`, 
`onlineInstances`), the group detail read and the AI group-detail verdict. The 
sibling client scan in the same package already unions every proxy 
(`RocketMQClientProvider.findConsumerConnections`), and its test asserts that a 
group with clients on two proxies yields both rows.
   
   ### Steps to Reproduce
   
   1. Connect two clients of the same group to different proxies.
   2. Open the consumer-group page (or the AI group detail).
   3. Only one proxy's client appears, and the count matches that subset.
      Red before the fix: the new resolver test sees only the first proxy's 
client and topic.
   
   ### What Did You Expect to See?
   
   The union of what the proxies report, like the client-list read.
   
   ### What Did You See Instead?
   
   The first answering proxy's subset, presented as the group.
   
   ### Evidence
   
   - `server/.../provider/apache/ProxyConsumerResolver.java` 
(`resolveConsumerConnectionStatus`), 
`server/.../provider/apache/RocketMQClientProvider.java` (the union sibling), 
`server/.../provider/apache/RocketMQMetadataProvider.java` (the group 
list/detail consumers).
   - `cd server && mvn -o -B -ntp test -Dtest='ProxyConsumerResolverTest'` - 
the new case fails before the fix.
   
   ### Impact
   
   A gRPC group's online clients, subscribed topics and instance rows are 
under-reported - a plausible-looking smaller number rather than "unknown" - and 
the AI health verdict reasons on that subset.
   
   ### Acceptance Criteria
   
   - The resolver merges every proxy's answer (connections deduped, 
subscription tables unioned), keeps the offline-vs-unavailable distinction, and 
a regression test pins the union.
   
   **Corresponding PR:** #ISSUEPR#
   


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