Frun1na opened a new issue, #6092: URL: https://github.com/apache/rocketmq-dashboard/issues/6092
### 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 a unit test against that commit (the affected code is the web client) ### Runtime Environment OS: Ubuntu on WSL2 MySQL: not applicable — the defect is in the web client browser: not applicable — reproduced in a jsdom unit test (vitest + Testing Library) ### Connected RocketMQ Cluster RocketMQ version: not applicable — reproduced with a stubbed `GET /topics/{topic}/routes` in a unit test access mode: not applicable deployment: not applicable ### Describe the Bug The topic detail modal reports a failed route read twice, in opposite directions. It shows the failure banner (`web/src/pages/instance/topic.tsx:1130`) that says "the conclusions and the rebuild action below are unavailable, please retry", and directly below it renders the conclusions computed from the empty route list that the failed request left behind: - the tiles `Broker 数 0`, `可写 Broker 0`, `可读 Broker 0`, `Replica 数 0` (`:1156-1179`), - the critical finding "Broker 上没有 Topic 路由" (`renderRouteIssues`, `:1180`), and - the recommendations built from that finding (`:1181`). `analyzeTopicRoutes()` only receives the routes, so an empty list is analysed as "this topic has no broker route" — the verdict the `routeLoadFailedTopics` flag was introduced to suppress (see the comment at `:360`). Only the banner uses that flag; the three blocks below it do not. ### Steps to Reproduce Reproduced by a unit test rather than against a cluster; the endpoint stub is the only setup needed: 1. Render `TopicPage`, open the detail modal of an existing topic, with `getTopicRoutes` rejecting (equivalently: open the modal while the route lookup fails, e.g. a transient error). 2. Read the modal: the banner says the route read failed. 3. Directly below it, the tiles report zero brokers and the finding claims the topic has no route. ### What Did You Expect to See? Either only the failure with its retry, or the conclusions — not both. Since the routes were never read, the verdicts should not be rendered. ### What Did You See Instead? `Broker 数 0` and the critical "Broker 上没有 Topic 路由" finding rendered under a banner that says those conclusions are unavailable. ### Additional Context - A fix with a regression test follows in a pull request. - The failure is pinned by extending the existing test for that failed read; it fails on `5e4c39b0` (`expected document not to contain element, found … Broker 数`) and passes with the fix. ### 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]
