mirror of
https://github.com/rustfs/rustfs.git
synced 2026-09-25 11:52:14 +00:00
a58ac62618
Source cleanup treated a retryable conflict such as a lock acquisition timeout as a permanent cleanup warning. The warning was persisted, mapped the pool to failed_ignored, and blocked pool completion for the rest of the run while the source replica stayed on disk. Retryable storage failures now defer the bucket instead, and only non-retryable failures keep a permanent warning, so completion still requires a resolved delete or a successful not-found check. Recording a bucket deferral no longer overwrites the pool's pending migration-deferral marker, because that marker is the only signal keeping a pool from completing at the free-space goal while an entry is retried. Teach the transient matchers the rendered lock timeout text, unwrap data-movement stage context before classifying not-found and transient cleanup failures, and raise the bounded source cleanup deferral budget.