unbridled-41 opened a new pull request, #5960:
URL: https://github.com/apache/rocketmq-dashboard/pull/5960
### Which Issue(s) This PR Fixes
Fixes #5959
### Problem / Evidence
The completeness flag came from the per-group queries only, while the
inventory that decides which queries run swallowed per-broker failures:
```java
// collectSubscriptionGroups
} catch (Exception e) {
log.warn("Failed to fetch subscription groups from broker={}, skipping",
brokerAddr, e);
}
```
```
RocketMQClientProviderTest#aFailedSubscriptionGroupScanMarksTheConsumerRowsPartialTest
Expecting value to be true but was false
```
A broker whose inventory read fails hides all of its groups - and therefore
every client that only connects to it
(`directConsumerOnAnotherBrokerInTheClusterRemainsVisibleTest` proves that
dependency) - while the remaining rows stay `partial=false`, so the page shows
a complete list and no warning.
### Root cause / Fix
`collectSubscriptionGroups` returned only the groups map, so the caller
could not know the inventory was incomplete. Return the scan's completeness
alongside the groups and include it in the flag; the all-brokers-failed 502 and
the per-group rules are unchanged.
### Priority and scoring
**PRIORITY 60** — impact 22/40 (missing client rows presented as complete,
i.e. a false negative on the page operators use to find clients), blast radius
12/20 (any cluster with a partially unreadable broker inventory),
reproducibility 18/20 (deterministic, pinned by the new test), maintenance
value 8/20.
**FIX_CONFIDENCE 80** — the flag and its rendering already exist; the change
threads one boolean through.
### Tests
`cd server && mvn -o -B -ntp test -Dtest='RocketMQClientProviderTest'` ->
`Tests run: 44, Failures: 0, Errors: 0`;
`-Dtest='RocketMQMetadataProviderTest,RocketMQClientProviderTest,ClientServiceTest'`
-> `Tests run: 98, Failures: 0, Errors: 0`.
| Test | Before | After |
|---|---|---|
| `aFailedSubscriptionGroupScanMarksTheConsumerRowsPartialTest` | FAIL
(`Expecting value to be true but was false`) | PASS |
| the existing proxy/partial cases | PASS | PASS |
`mvn -o -B -ntp checkstyle:check` passes.
### Risk
Rows are now marked partial when a broker inventory could not be read, so
the page shows its partial-scan warning in that case - which is the point.
--
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]