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

   ### 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='RocketMQClientProviderTest'`).
   
   ### Connected RocketMQ Cluster
   
   A multi-broker cluster where one broker's subscription-group read fails.
   
   ### Describe the Bug
   
   The consumer scan derives its completeness flag from the per-group queries 
only:
   
   ```java
   complete &= addConsumerConnections(adminExt, broker, group, false, result);
   ...
   if (successfulGroupQueries < attemptedGroupQueries) { rows.forEach(row -> 
row.setPartial(true)); }
   ```
   
   but the group inventory that decides which queries run swallows a per-broker 
failure:
   
   ```java
   } catch (Exception e) {
       log.warn("Failed to fetch subscription groups from broker={}, skipping", 
brokerAddr, e);
   }
   ```
   
   A broker whose `getAllSubscriptionGroup` fails contributes no groups, so 
every client that connects only to that broker disappears from `/api/clients` - 
and because `successfulGroupQueries == attemptedGroupQueries` for the groups 
that were found, the surviving rows stay `partial=false` and the page shows a 
complete list with no "partial scan" banner. The existing test 
`directConsumerOnAnotherBrokerInTheClusterRemainsVisibleTest` shows those 
groups are only visible because that broker answered.
   
   ### Steps to Reproduce
   
   1. Run against a cluster with two broker groups and make one broker's 
subscription-group read fail (or stop that broker's admin endpoint).
   2. Open the Clients page: the consumers that only connect to that broker are 
gone, and no partial-scan warning is shown.
   
   ### What Did You Expect to See?
   
   The rows that could be read, marked as a partial scan.
   
   ### What Did You See Instead?
   
   A shorter list presented as complete.
   
   ### Evidence
   
   - `server/.../provider/apache/RocketMQClientProvider.java` 
(`findConsumerConnections`, `collectSubscriptionGroups`).
   - `cd server && mvn -o -B -ntp test 
-Dtest='RocketMQClientProviderTest#aFailedSubscriptionGroupScanMarksTheConsumerRowsPartialTest'`
 - fails before the fix ("Expecting value to be true but was false").
   
   ### Impact
   
   Missing client rows presented as the whole truth - the exact "where did my 
consumer go" false negative the partial flag exists to prevent.
   
   ### Acceptance Criteria
   
   - An unreadable broker inventory marks the returned rows partial (while an 
all-brokers failure stays a 502), with a regression test.
   
   **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