Skip to content

feat(rc-site-replication)!: expose persisted resync snapshots#291

Merged
cxymds merged 1 commit into
cxymds/issue-1418-site-replication-editfrom
cxymds/issue-1419-site-replication-resync
Jul 22, 2026
Merged

feat(rc-site-replication)!: expose persisted resync snapshots#291
cxymds merged 1 commit into
cxymds/issue-1418-site-replication-editfrom
cxymds/issue-1419-site-replication-resync

Conversation

@cxymds

@cxymds cxymds commented Jul 22, 2026

Copy link
Copy Markdown
Member

Closes rustfs/backlog#1419

Parent: rustfs/backlog#1411
Roadmap: rustfs/backlog#1381, rustfs/backlog#1361
Depends on: #290 and rustfs/backlog#1418

Background

RustFS beta10 exposes PUT /rustfs/admin/v3/site-replication/resync/op, but its status response is a persisted snapshot of the last start or cancel handler invocation rather than live worker state. Without a typed and bounded CLI workflow, users can overstate lifecycle progress or blindly retry a mutation whose side effects may already have happened.

Solution

  • add rc admin replicate resync start|status|cancel with exact peer selection and pre-network --yes confirmation for mutations
  • send the complete typed peer document using the exact beta10 query and body contract
  • expose operation IDs, ordered per-bucket results, top-level details, and safe future metadata through output-v3 admin_operations
  • label status as persisted_last_operation and lifecycle as unknown
  • preserve partial/all-bucket failures in output and return General exit 1
  • bound requests and responses, disable redirect replay, and distinguish local request rejection from an attempted mutation
  • report disconnects, malformed/oversized mutation responses, and unclassified server failures as unknown outcomes with no blind retry guidance
  • redact credentials recursively without changing the unredacted protocol success/failure classification
  • document current RustFS overlap, cancellation, persistence, atomicity, and live-status limitations

BREAKING contract note

This PR updates the protected docs/reference/rc/ behavior contract and is intentionally marked BREAKING. The new commands are additive and use the existing output-v3 admin_operations schema, so no schema-version migration is required. Automation must treat result.lifecycle_state as unknown and must not interpret resync status snapshots as live progress.

Validation

  • cargo fmt --all --check
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --workspace -- --test-threads=1 — 1230 passed, 0 failed, 1 ignored
  • independent final review — no actionable findings

@cxymds
cxymds changed the base branch from cxymds/issue-1418-site-replication-edit to main July 22, 2026 04:27
@cxymds cxymds closed this Jul 22, 2026
@cxymds cxymds reopened this Jul 22, 2026
@cxymds
cxymds changed the base branch from main to cxymds/issue-1418-site-replication-edit July 22, 2026 04:28
@cxymds

cxymds commented Jul 22, 2026

Copy link
Copy Markdown
Member Author

Implementation and validation are complete for the current stacked revision (34a357c).

Validation:

  • cargo fmt --all --check
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --workspace -- --test-threads=1 — 1230 passed, 0 failed, 1 ignored
  • all required GitHub checks passed on Linux, macOS, and Windows
  • RustFS latest smoke, CLI contract, Golden, documentation, MSRV, protected-files, and dependency advisory checks passed
  • independent final review found no actionable issues

The PR remains Draft and correctly targets cxymds/issue-1418-site-replication-edit.

@cxymds
cxymds marked this pull request as ready for review July 22, 2026 12:42
@cxymds
cxymds merged commit 8937a3d into cxymds/issue-1418-site-replication-edit Jul 22, 2026
16 checks passed
@cxymds
cxymds deleted the cxymds/issue-1419-site-replication-resync branch July 22, 2026 12:42
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