Skip to content

fix(status): separate cluster diagnostic states#177

Merged
cxymds merged 3 commits into
mainfrom
cxymds/fix-running-status-diagnostics
Jul 22, 2026
Merged

fix(status): separate cluster diagnostic states#177
cxymds merged 3 commits into
mainfrom
cxymds/fix-running-status-diagnostics

Conversation

@cxymds

@cxymds cxymds commented Jul 22, 2026

Copy link
Copy Markdown
Member

Description

Separates running-status diagnostics into independent peer health, storage readiness, usage freshness, listing/metacache, and workload-admission states.

The previous status model could conflate unavailable peer diagnostics with node or disk failures. This change consumes the optional backend-discovered cluster snapshot, preserves legacy status data for older servers, and prevents diagnostic endpoint timeouts from blocking the page.

The follow-up contract from rustfs/backlog#1392 is now reflected directly:

  • snapshot.components.*.condition is authoritative over nested capability status
  • unknown, not_reported, stale, and degraded remain distinct states
  • omitted components on older backends are shown as not reported instead of inferred healthy or failed
  • peer diagnostics degrade a node only for explicit failure evidence such as unreachable or unresolved
  • internode_stall_timeouts_total is displayed as cumulative historical evidence and never changes current listing health by itself
  • listing troubleshooting links to the real multi-node, time-windowed walk_dir metrics verification flow
  • workload admission is displayed independently
  • no S3 request behavior changes are included

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Code refactoring
  • Performance improvement
  • Test improvements
  • Security fix

Testing

  • Unit tests added/updated
  • Manual testing completed
pnpm install --frozen-lockfile
pnpm tsc --noEmit
pnpm lint
pnpm prettier --check .
pnpm test:run

All 349 tests pass. The local Console route was started successfully, but end-to-end visual verification was blocked by the unavailable authenticated RustFS backend; semantic, responsive, old-backend fallback, and exact component-contract regression tests cover the changed behavior.

Checklist

  • Code follows the project's style guidelines
  • Self-review completed
  • TypeScript types are properly defined
  • All commit messages are in English (Conventional Commits)
  • All existing tests pass
  • No new dependencies added, or they are justified

Related Issues

Closes rustfs/backlog#1391
Closes rustfs/backlog#1392

Screenshots (if applicable)

Not included because the local backend session was not authenticated.

Additional Notes

The optional cluster snapshot request has an independent five-second timeout and never blocks the legacy status requests. Historical stall counters are deliberately presented without a current-health inference.

@cxymds
cxymds marked this pull request as ready for review July 22, 2026 00:41
@cxymds
cxymds requested a review from houseme July 22, 2026 00:41
@houseme

houseme commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

@codex review

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 5ef05c57d1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread lib/performance-data.ts Outdated
@cxymds
cxymds merged commit 64809a3 into main Jul 22, 2026
10 checks passed
@cxymds
cxymds deleted the cxymds/fix-running-status-diagnostics branch July 22, 2026 01:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants