unbridled-41 opened a new issue, #4612:
URL: https://github.com/apache/rocketmq-dashboard/issues/4612

   ### Studio Version
   
   branch: master
   git commit id: d50ffecc9d7e8f8f46da64198831bd7952e6974e
   
   ### Problem
   
   On the cluster page, a failed registry load silently wipes the data it is 
supposed to refresh and leaves the page claiming a healthy live connection:
   
   - `loadRegistryClusters` (`web/src/pages/cluster/index.tsx:205-224`) catches 
a failed `listRegistryClusters()` with `setRegistryClusters([])` — no error 
state, no message, no retry flag. The Broker tab table (`:2444+`) and the Proxy 
tab table render their rows from `registryClusters`, so one transient failure 
empties both inventories.
   - `loadNsRegistry` (`:230-238`) does the same to the NameServer 注册表 table 
(`setNsRegistry([])`), and the K8s cert effect (`:244-255`) clears the cert-id 
options.
   - The page's green "实时刷新" live indicator is driven only by the per-instance 
`clusters` auto-refresh, which does **not** re-run these loaders (they fire 
once on mount). After a registry failure the indicator keeps pulsing green next 
to empty tables, telling the operator the data is live and healthy.
   - The same page already has the correct pattern for a primary load: the 
instance list failure sets `instanceLoadError` (`:176-180` area) and renders an 
error panel with retry. The registry loaders predate that pattern and were 
never aligned.
   
   Trigger (deterministic): open 集群管理 while `/registry/clusters` or 
`/nameservers/registry` returns a transient 5xx (gateway hiccup, backend 
restart). Broker/Proxy tabs and the NameServer registry show empty tables with 
no error until the user manually hits refresh; the header live indicator stays 
green throughout.
   
   ### Evidence
   
   - `web/src/pages/cluster/index.tsx:215-218` (catch → 
`setRegistryClusters([])`), `:235-237` (catch → `setNsRegistry([])`), 
`:252-254` (catch → `setK8sIdOptions([])`).
   - `web/src/pages/cluster/index.tsx:226-242` — both loaders run once on 
mount; the 2s auto-refresh effect does not include them.
   - Live indicator source: the auto-refresh status of `clusters` only.
   - Contrast: `instanceLoadError` state + error panel with retry button 
already in the same file for the instance list.
   
   ### Impact
   
   An operator who opens the page during a blip sees empty cluster/registry 
inventories with a green "live" indicator — "no clusters" and "connection 
healthy" shown at the same time. Data-driven actions (config diff, registry 
edits) look unavailable for reasons the page never explains.
   
   ### Expected behavior
   
   A failed registry load surfaces an error state (error banner/retry like the 
instance list, or keep-previous-data plus a visible failure flag) instead of 
silently rendering an empty inventory as if it were authoritative; the live 
indicator must not claim health over a failed registry source.
   
   ### Related work
   
   - #3103 (open, PR #4559) — registry *actions* targeting the wrong instance; 
different defect on the same table.
   - #4543 — connection lookup failures reported as zero online clients: same 
"failure rendered as empty/zero" family, different page and layer.
   - #4599 / PR #4603 — failed audit summary rendered as zero statistics: same 
family in ops.
   
   ### PR
   
   Fix incoming.
   


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