zmuxuny opened a new pull request, #5256:
URL: https://github.com/apache/rocketmq-dashboard/pull/5256

   ### Which Issue(s) This PR Fixes
   
   - Fixes #5059.
   
   ### Problem
   
   An older Proxy list refresh could restore stale nodes and the old stored 
address after a newer refresh had succeeded. The request ownership guard 
covered a successful optional topology/health probe, but the older request 
could still commit its stale list when that probe failed.
   
   ### Changes
   
   Keep the request ownership check at the point where Proxy nodes, counts, and 
the stored address are committed. It now runs whether the optional 
topology/health request succeeds or fails. The current request's health probe 
remains best-effort; there is no API or backend behavior change.
   
   This covers the failure path left outside the earlier out-of-order 
home-response coverage from #1336.
   
   ### Previous Submission
   
   This replaces #5060, which the inactivity bot closed after seven days 
without activity. The original PR retains the earlier context and red/green 
test history. The issue remains open and this fix is still needed.
   
   The original branch was refreshed onto `rocketmq-studio@a460673f`, 
preserving upstream changes. Tested head: 
`1b0a3766bea095c2da7413bd24bfb036fc419b97`.
   
   ### How Did You Test This Change?
   
   Validation rerun on the refreshed branch on 2026-10-01:
   
   - `cd web && npx vitest run src/pages/studio/__tests__/Proxy.test.tsx`: **16 
passed**.
   - The controlled regression receives an old address list, holds its health 
probe pending, lets a newer refresh commit another list, then rejects the old 
probe. The newer node and address must remain. Before the fix, the newer node 
disappeared after the older probe rejected.
   - ESLint and Prettier passed for `Proxy.tsx` and `Proxy.test.tsx`.
   - `git diff --check`: passed.
   
   Known verification limits:
   
   - TypeScript on the refreshed branch is blocked by the unchanged upstream 
`MetricsExplorer.test.tsx:516` TS2353 error (`query` is absent from the 
inferred parameter type), also reproduced on clean upstream. The old PR's 
historical TypeScript/build output is not a fresh result for this head.
   - The full frontend build is not claimed as passing. The separate 
final-artifact license gate tracked in #5019 was not revalidated past the 
TypeScript blocker.
   - Full CI is pending for this new PR. The refreshed base includes #5020 and 
#5029.
   
   ### Checklist
   
   - [x] One coherent fix; no unrelated modifications
   - [x] Conventional Commit subjects
   - [x] Deterministic regression for an out-of-order failure
   - [x] No new UI text, source files, or API contract
   - [ ] Full CI is green
   


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