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]

Reply via email to