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]

Reply via email to