X-LightYear opened a new issue, #5108:
URL: https://github.com/apache/rocketmq-dashboard/issues/5108

   ### Before Creating the Bug Report
   
   - [x] Reproduced on the documented `rocketmq-studio` trunk at 
`a562601d0971001c1cd3b888a9f2664b6ef77811`.
   - [x] This is a RocketMQ Studio provider defect, not an upstream RocketMQ 
broker defect.
   - [x] Searched open and closed Issues and PRs for LiteTopic lag, 
`liteTopicLagMap`, Aliyun consumer-group progress, and group-progress rows; no 
duplicate was found.
   
   ### Problem
   
   Aliyun's `GetConsumerGroupLag` response exposes LiteTopic backlog in 
`data.liteTopicLagMap`, but Studio's `AliyunConverters.toQueueProgressRows` 
only reads `data.topicLagMap`. A consumer group that consumes only LiteTopics 
therefore returns no progress row at all, even though the provider received a 
valid lag measurement.
   
   ### Production path
   
   `GET /api/groups/{name}/progress?instanceId=...`
   → `MetadataService.getGroupProgress`
   → `AliyunInstanceProvider.getGroupProgress`
   → Aliyun `GetConsumerGroupLag`
   → `AliyunConverters.toQueueProgressRows`
   
   The Aliyun SDK model used by the current code has 
`Data.getLiteTopicLagMap()` with `DataLiteTopicLagMapValue.getReadyCount()`.
   
   ### Reproduction
   
   Use a valid Aliyun consumer-group-lag response containing:
   
   ```json
   {
     data: {
       liteTopicLagMap: {
         lite-orders: { readyCount: 7 }
       }
     }
   }
   ```
   
   Open the consumer group's progress view or call the progress endpoint.
   
   ### Expected behavior
   
   The progress result contains a row for `lite-orders` with `diffTotal=7`. The 
existing unknown-offset convention remains applicable because Aliyun reports 
topic-level lag rather than broker queue offsets.
   
   ### Actual behavior
   
   The result is an empty list. The LiteTopic backlog is silently omitted from 
the consumer-group progress response.
   
   ### Deterministic regression evidence
   
   Added `AliyunConvertersLagTest.liteTopicLagShouldProduceAProgressRowTest` in 
the local validation worktree. On the current production code it fails 
deterministically:
   
   ```text
   Tests run: 5, Failures: 1, Errors: 0, Skipped: 0
   AliyunConvertersLagTest.liteTopicLagShouldProduceAProgressRowTest
   Expected size: 1 but was: 0
   ```
   
   The failing assertion is the exact user-visible contract: a valid LiteTopic 
lag entry must produce one progress row.
   
   ### User impact
   
   Operators monitoring Aliyun consumer groups can miss LiteTopic backlog 
entirely. This can make the progress table, diagnostics, and any downstream 
backlog aggregation appear empty or incomplete for groups whose subscriptions 
include LiteTopics.
   
   ### Proposed scope
   
   Merge the Aliyun LiteTopic lag map into the existing topic-level progress 
conversion without creating a duplicate aggregate row when either breakdown is 
present. Preserve the existing offset-unknown sentinel and ordinary topic 
behavior.


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