Skip to content

fix(status): detect incomplete cluster topology#178

Merged
cxymds merged 1 commit into
mainfrom
cxymds/fix-running-status-topology
Jul 23, 2026
Merged

fix(status): detect incomplete cluster topology#178
cxymds merged 1 commit into
mainfrom
cxymds/fix-running-status-topology

Conversation

@cxymds

@cxymds cxymds commented Jul 23, 2026

Copy link
Copy Markdown
Member

Pull Request

Description

Make Running Status treat v4 cluster membership and pool topology as the authoritative denominator while retaining v3 server details.

The previous UI could render Healthy, 3/3 servers, and 3/0 disks when v3 omitted one member but totalDrivesPerSet and the v4 snapshot both expected four topology entries. The normalization layer discarded the v3 denominator and parsed v4 membership without using it in the presentation model.

This change:

  • preserves v3 totalDrivesPerSet
  • normalizes v4 membership drives and pool topology
  • reconciles v3 detail rows with v4 members without duplicating hostname-only and port-qualified endpoints
  • synthesizes explicit Unknown rows for unreported topology members
  • degrades incomplete topology to Unknown instead of Healthy
  • displays reported, expected, and unreported counts
  • retains graceful behavior for older v3-only servers
  • updates all locale packs and adds regression coverage for the reporter payload

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 test:run
pnpm tsc --noEmit
pnpm lint
pnpm prettier --check .
pnpm build

All 359 tests pass and the production build completes successfully.

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

Screenshots (if applicable)

Not included. Local browser validation reached the permission guard because no RustFS backend/login session was available; data mapping, UI wiring, type checking, and the production build were verified locally.

Additional Notes

The v4 snapshot supplies the expected topology while v3 remains the source of version, uptime, drive usage, and network detail. When v4 is unavailable, the page falls back to the v3 drive denominator without inferring a server count from drive count.

@cxymds
cxymds marked this pull request as ready for review July 23, 2026 02:25
@cxymds
cxymds merged commit b0fc482 into main Jul 23, 2026
10 checks passed
@cxymds
cxymds deleted the cxymds/fix-running-status-topology branch July 23, 2026 02: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.

1 participant