unbridled-41 opened a new pull request, #5962:
URL: https://github.com/apache/rocketmq-dashboard/pull/5962

   ### Which Issue(s) This PR Fixes
   
   Fixes #5961
   
   ### Problem / Evidence
   
   `GroupLiveSnapshot` carried the instance list and lag but not the 
subscription table, so every listed Apache group shipped the VO default:
   
   ```
   
RocketMQMetadataProviderTest#listConsumerGroupsPageShouldCarryTheGroupsSubscribedTopicsTest
   Expecting actual: [] ...
   ```
   
   The detail read fills the same field from the same connection 
(`RocketMQAdminClientImpl.getConsumerGroup`), and the web draws the 订阅 Topic 数 
card, the topic tags and the CSV column from the *list* row (the page never 
calls the detail endpoint), while the drawer's own subscription tab fetches the 
topics separately - so the panel contradicted itself.
   
   ### Root cause / Fix
   
   A field the snapshot could not carry. Add `subscribedTopics` to 
`GroupLiveSnapshot`, fill it from the connection's subscription table in 
`enrichGroupLiveStats` (sorted, blanks filtered), and copy it onto the VO - 
leaving the caller's value in place when the enrichment was cut short by the 
batch deadline (an empty snapshot list means "not read").
   
   ### Priority and scoring
   
   **PRIORITY 62** — impact 20/40 (a deterministic wrong count and an empty 
list for every group, in the drawer, the CSV and the AI detail), blast radius 
14/20 (every Apache group row), reproducibility 20/20 (deterministic, pinned by 
the new test), maintenance value 8/20.
   
   **FIX_CONFIDENCE 80** — no new RPC: the connection is already fetched for 
the instance list.
   
   ### Tests
   
   `cd server && mvn -o -B -ntp test -Dtest='RocketMQMetadataProviderTest'` -> 
`Tests run: 49, Failures: 0, Errors: 0`; 
`-Dtest='RocketMQMetadataProviderTest,MetadataServiceTest,ConsumerGroupControllerTest'`
 -> `Tests run: 131, Failures: 0, Errors: 0`.
   
   | Test | Before | After |
   |---|---|---|
   | `listConsumerGroupsPageShouldCarryTheGroupsSubscribedTopicsTest` | FAIL 
(empty list) | PASS (`["orders"]`) |
   | the existing enrichment/online cases | PASS | PASS |
   
   `mvn -o -B -ntp checkstyle:check` passes.
   
   ### Risk
   
   One extra field per row, filled from data already in hand. Groups whose 
connection read fails keep the empty list they have today.


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