mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-23 12:49:04 +00:00
693800db8e
A single object's SourceChanged during decommission cleanup no longer cancels the shared worker token and fails the whole pool operation. Cleanup preflight and source-cleanup outcomes now retry per entry with bounded attempts and cancellation-aware backoff, applied uniformly to ordinary versions, delete markers, and tiered copies (removing the try-once-only branches); every retry re-lists the entry and redoes version multiset validation before touching the source. Only quorum loss, unrecoverable system errors, or exceeding a pool-level SourceChanged exhaustion threshold still fails the decommission, and exhausted entries never delete their source versions. Retry attempts, backoff, and deferred/exhausted reasons are logged per entry for observability. Heavy regression tests spawn on dedicated 32MiB stacks following the existing store-test pattern. Fixes rustfs/backlog#1913