Frun1na opened a new issue, #6126:
URL: https://github.com/apache/rocketmq-dashboard/issues/6126

   ### Before Creating the Bug Report
   
   - [x] I have searched the [open 
issues](https://github.com/apache/rocketmq-dashboard/issues) of this repository 
and believe that this is not a duplicate.
   - [x] This is a defect in RocketMQ Studio, not a usage question and not a 
defect in another Apache RocketMQ repository.
   - [x] I can reproduce this on the current `rocketmq-studio` branch, or I 
have stated the exact version I am running below.
   
   ### Studio Version
   
   branch: `rocketmq-studio`
   git commit id: `5e4c39b0`
   deployed as: reproduced by unit tests against that commit (the affected code 
is the backend cloud providers)
   
   ### Runtime Environment
   
   OS: Ubuntu on WSL2
   MySQL: not applicable — the defect is the mapping of two vendor responses, 
reproduced in JUnit 5 tests
   browser: not applicable for the reproduction; the consumer page and the CSV 
export render the affected fields
   
   ### Connected RocketMQ Cluster
   
   RocketMQ version: not applicable — reproduced with stubbed Aliyun and 
Tencent SDK clients
   access mode: not applicable
   deployment: not applicable
   
   ### Describe the Bug
   
   A cloud consumer-group row reports `onlineInstances = 0` and `totalLag = 0` 
because neither provider maps
   them, and `ConsumerGroupVO`'s defaults are 0:
   
   - `AliyunConverters.toConsumerGroupVO` 
(`provider/alibaba/AliyunConverters.java:175`) maps the group id,
     consume type, subscription mode and times. 
`ListConsumerGroupsResponseBody.List` carries no client count and
     no backlog, so both values stay at their defaults.
   - `TencentInstanceProvider.toConsumerGroup` 
(`provider/tencent/TencentInstanceProvider.java:1027`) maps the same
     fields; `DescribeConsumerGroupList` is documented in the provider itself 
as exposing limited fields, and the
     `DescribeConsumerGroup` response the provider *already fetches* for the 
creation timestamp and consume model
     carries `ConsumerNum` and `ConsumerLag`, which `enrichConsumerGroupDetail` 
drops.
   
   The console renders these numbers as measurements (`onlineInstances`, 
`totalLag`), and the CSV export writes
   them as 0. The repository's convention for an unmeasurable value is the 
negative sentinel: the Apache provider
   writes `-1` for an unavailable connection inventory (`ConsumerGroupVO`'s 
javadoc), `ConsumerLagResolver.UNKNOWN`
   for an unknown backlog, the CSV renders `unknown` for both, and the web 
client treats `< 0` as unavailable
   (`consumerGroupDiagnostics.ts:302`, `isLagAvailable`). #5449 already fixed 
the same default-to-0 leak for the
   topic consumer VO and #4902 for cloud queue offsets.
   
   ### Steps to Reproduce
   
   1. List consumer groups of an Aliyun or Tencent instance (with a stubbed 
vendor client):
   
      ```
      cd server && mvn -B -ntp test 
-Dtest=AliyunConvertersTest,TencentInstanceProviderTest
      toConsumerGroupVoShouldReportUnmeasurableClientAndLagCountsAsUnknownTest: 
expected: -1 but was: 0
      listConsumerGroupsShouldReportUnmeasurableCountsAsUnknownTest: expected: 
-1 but was: 0
      listConsumerGroupsShouldUseTheDetailClientAndLagCountsTest: expected: 3 
but was: 0
      ```
   
   2. On a console, the same rows show `0` in the online-instances column and 
`0` backlog for every group.
   
   ### What Did You Expect to See?
   
   `-1` (unknown) for a value the vendor response does not carry, rendered as 
unavailable/`unknown` by the console
   and the CSV; and for Tencent, the `ConsumerNum` / `ConsumerLag` the detail 
response already provides.
   
   ### What Did You See Instead?
   
   `0` clients and `0` backlog — measured-looking values that no response 
reported, identical for every group.
   
   ### Additional Context
   
   A fix with regression tests follows in a pull request.
   
   ### Are You Willing to Submit a Pull Request?
   
   - [x] Yes, I am willing to submit a pull request.
   


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