unbridled-41 opened a new issue, #4600:
URL: https://github.com/apache/rocketmq-dashboard/issues/4600
## Problem
A failed consumer-progress request is indistinguishable from a group with no
queue data. The progress tab asserts that the group is not online with zero
brokers and zero queues, and the health tab keeps reporting a healthy group
although the queue progress it summarizes was never read.
## Evidence
`web/src/pages/instance/consumer.tsx` (`loadProgress`, before the fix):
```ts
try {
const progress = await getConsumerProgress(groupName, selectedInstanceId
|| undefined);
setProgressByGroup((prev) => ({ ...prev, [cacheKey]: progress }));
} catch {
if (!silent) message.error(t('consumer.fetchProgressFailed', { name:
groupName }));
}
```
No error state is recorded, so the render falls back to the empty defaults
(`progressByGroup[key] ?? []`) and:
- the progress table shows `消费组不在线,暂无队列进度数据` (`locale.emptyText`), a factual
claim about the group that the code never established;
- the summary cards show `总 Broker 数: 0`, `总 Queue 数: 0`, `总堆积: 0`;
- `analyzeConsumerGroupHealth(group, subscriptions, [])` sees zero queues,
so the health tab reports `未发现消费组健康风险`.
The sibling loader in the same file (`loadSubscriptions`) already tracks
`subscriptionErrorByGroup` and renders `订阅一致性检查失败,当前保留上次检查结果`; `loadProgress`
had no equivalent.
Reproduction (regression test added with this report,
`ConsumerPage.test.tsx`, `does not report a failed progress load as an offline
consumer group`): open a group's detail with `/groups/{name}/progress`
rejecting and the subscriptions request resolving. Before the fix the test
finds `消费组不在线,暂无队列进度数据` in the progress panel; after the fix the failure notice
`消费进度加载失败,无法判断消费组是否在线` is shown and the diagnosis additionally warns that the
queue progress is missing.
## Impact
On a transient broker/network failure the operator is told the consumer
group is offline and healthy at the same time, with zero lag — the opposite of
what a failing offset query usually indicates.
## Expected behavior
A failed progress read is surfaced as unavailable: the progress tab states
that the queue progress could not be loaded instead of claiming the group is
offline, and the health diagnosis marks itself as incomplete rather than
healthy.
## Related work
- The subscription path in the same file keeps an error flag per instance
and group and renders it instead of the empty text (`consumer.tsx`): this
report is the missing counterpart for the progress path.
- #4258 (offline and broadcast groups returning 502) covers the server-side
grading of genuinely offline groups; it does not cover a failed read rendered
as an empty result in the web UI.
## PR
Fix incoming.
--
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]