mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-26 16:28:15 +00:00
ea74fa7a95
Object repair rebuilt missing data shards but left missing parity shards unrecreated. A parity-only repair could therefore complete without restoring the shard contents. Add a repair-specific reconstruction path that regenerates parity after data shards are available, while keeping normal read decoding data-only. Also shut down repair writers after all blocks are written. Constraint: Preserve read-path decode behavior and limit parity regeneration to repair. Confidence: high Scope-risk: moderate Directive: Do not route read decoding through parity regeneration without measuring the cost. Tested: cargo test -p rustfs-ecstore decode_data_and_parity -- --nocapture Tested: cargo test -p rustfs-ecstore heal_reconstructs_missing_parity_shard -- --nocapture Tested: cargo test -p rustfs-ecstore erasure_coding -- --nocapture Tested: cargo test -p rustfs heal_object_marks_missing_shard_disk_dirty_for_capacity_manager -- --nocapture Tested: cargo test -p rustfs-heal -- --nocapture Tested: cargo clippy -p rustfs-ecstore --all-targets -- -D warnings Tested: cargo fmt --all --check Tested: make pre-commit Not-tested: Live multi-node disk replacement outside local test harness