Frun1na opened a new issue, #6089: URL: https://github.com/apache/rocketmq-dashboard/issues/6089
### 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's rendering of failed registry requests browser: not applicable — reproduced in a jsdom unit test (vitest + Testing Library) ### Connected RocketMQ Cluster RocketMQ version: not applicable — reproduced with stubbed registry endpoints in a unit test access mode: not applicable deployment: not applicable ### Describe the Bug Three registry loads on the cluster page clear their state on failure and render as an empty list, so a failed request is presented as "this deployment has registered nothing". `web/src/pages/cluster/index.tsx` (base `5e4c39b0`): ```ts const loadRegistryClusters = useCallback(async () => { const requestId = registryClustersRequest.begin(); ... } catch { if (registryClustersRequest.isCurrent(requestId)) { setRegistryClusters([]); } } finally { ``` - `loadRegistryClusters` (`:222`): `registryClusters` feeds the registry tab *and* the Broker and Proxy tabs (`:1218`, `:1681`), so one failed read empties three tabs. - `loadNsRegistry` (`:242`): the NameServer registry table renders empty. - the certificate load (`:259`): `setK8sIdOptions([])` leaves the registry dialog's K8s ID field with no options, and that Select does not accept free text, so the field cannot be filled at all. None of the three collects an error state, and none of those tables has an error or retry affordance. The same page already treats a failed instance-list load properly — three retries and an `instanceLoadError` banner with a retry (`:158`, `:1898`) — so the registry area is the leftover copy of that handling. ### Steps to Reproduce Reproduced by a unit test rather than against a cluster; the endpoint stub is the only setup needed: 1. Render `ClusterPage` with `listRegistryClusters` rejecting (equivalently: open the cluster page while `GET /api/clusters/registry` fails, e.g. on a transient network error). 2. Open the registry, Broker and Proxy tabs. 3. All three show empty tables and nothing says the read failed. ### What Did You Expect to See? The page should report that the registry data could not be loaded and offer a retry, the way it already does for a failed instance-list load. ### What Did You See Instead? Empty registry, Broker and Proxy tables with no message and no retry, and a K8s ID field that cannot be filled in the registry dialog. ### Additional Context - A fix with a regression test follows in a pull request. - The failure is pinned by a unit test that fails on `5e4c39b0` and passes with the fix, including the retry: the registry list is re-requested and the warning clears once it succeeds. ### 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]
