feat(replication): add durable site repair lifecycle#331
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related Issues
Closes rustfs/backlog#1498
Related: rustfs/backlog#1408, rustfs/backlog#1381, rustfs/backlog#1361
Summary
rc admin replicate repair dry-run|execute|statusagainst the durable RustFS site-replication repair v1 contract--yesbefore executerunning,success,partial, andfailedstates; partial/failed snapshots keep complete JSON while exiting non-zeroSafety and Compatibility
UnsupportedFeatureafter capability discovery without probing repair mutation routesDependency
The server contract was merged in rustfs/rustfs#5217 and closed rustfs/backlog#1408.
Verification
cargo fmt --all -- --checkcargo clippy ... -- -D warningsfor rc-core, rc-s3, rc binary, admin_replicate, output_schema_v3 and help_contractcargo test -p rc-core(240 passed)cargo test -p rc-s3(387 passed)cargo test -p rustfs-cli --test admin_replicate(46 passed)cargo test -p rustfs-cli --test output_schema_v3(16 passed)cargo test -p rustfs-cli --test help_contract(3 passed)git diff --checkThe repository-wide golden target remains environment/snapshot-order dependent on current main: five S3 fixtures require an external test service and four existing alias snapshots differ only by JSON key order. No golden updates from that run are included.
Adversarial review verdicts after fixes: