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]