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

   ### 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 `master` branch, or I have stated 
the exact version I am running below.
   
   
   ### Studio Version
   
   Originally reproduced on `rocketmq-studio@0228dad5`, built from source 
(2026-09-23). Current fix PR #5256 records fresh 2026-10-04 validation against 
`rocketmq-studio@6a68042fa73a513f40436ca721944b4de48181ec`.
   
   ### Runtime Environment
   
   Frontend: React/Vite in the repository. The failure sequence can be 
reproduced with controlled Proxy API responses; no browser-specific or 
backend-specific behavior is required.
   
   ### Connected RocketMQ Cluster
   
   Any configured Proxy address list. A live cluster is not needed to reproduce 
this frontend request-order race.
   
   ### Build Toolchain
   
   _No response_
   
   ### Describe the Bug
   
   The Proxy page already tracks a request ID so an older list load cannot 
overwrite a newer one. However, `applyProxyHome` checks that ID only when 
`getProxyTopology()` succeeds. If an older health probe rejects, the `catch` 
falls through to `setProxyNodes(nodes)` without checking whether a newer list 
has already been applied. A failed optional health probe can therefore restore 
removed/outdated Proxy addresses and selection in the UI.
   
   ### Steps to Reproduce
   
   1. Let an earlier list request return address A, but keep its 
`getProxyTopology()` call pending.
   2. Start a newer load (for example, after removing A) and let it apply an 
address list without A.
   3. Reject the earlier `getProxyTopology()` call.
   4. Observe that the earlier address list is applied again.
   
   ### What Did You Expect to See?
   
   Only the latest active list request should update nodes, statistics, local 
storage, or the selected address, regardless of whether its optional health 
probe succeeds or fails.
   
   ### What Did You See Instead?
   
   The old address reappears after the older health probe fails, even though 
the newer list has already been rendered.
   
   ### Additional Context
   
   ### Previous report and current fix (2026-10-04)
   
   This replaces 
[#5059](https://github.com/apache/rocketmq-dashboard/issues/5059), 
automatically closed by `github-actions[bot]` for inactivity on 2026-10-04. The 
closure was a stale-workflow action, not a maintainer rejection of the reported 
defect.
   
   The existing fix PR is 
[#5256](https://github.com/apache/rocketmq-dashboard/pull/5256), which remains 
open. October 4 validation, dated CI results, and remaining limitations are 
recorded there. Overall CI is not green.
   
   ### Historical verification (2026-09-26)
   
   The original fix PR #5060 recorded a red/green regression and 16 focused 
frontend tests passing in the September 26 report; its full build encountered 
the separate license gate tracked by #5019. #5256 is the current replacement 
fix PR, and its October 4 results and limitations supersede those historical 
results.
   
   ### Scope and related reports
   
   The earlier out-of-order test covered an older `queryProxyHomePage()` 
response arriving late (#1336). This is a different ordering: the older home 
response arrives first, then its health probe fails after the newer list has 
committed. The fix includes a deterministic deferred-promise regression for 
this path.
   
   Related #5364 concerns requests publishing browser preferences after page 
unmount. This report concerns an older failed health probe overwriting a newer 
in-page list and does not cover that separate cleanup path.
   
   ### 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