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]

Reply via email to