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]
