mirror of
https://github.com/rustfs/rustfs.git
synced 2026-10-27 06:18:43 +00:00
2b57fa8758
Count only post-format rebuild failures against the replacement retry budget; handoffs, format fences, outages, grace waits and conflicts keep their durable reason without spending an attempt. Retired generations (committed handoff or approved legacy migration) no longer own their set, so fresh admission for other slots proceeds, and a committed predecessor becomes collectible once its successor is verified. Block discovery conflicts per generation instead of per set, re-evaluate them on every pass, and expose the blocked entries with reasons. Report root heal inventory conflicts per record and keep replaying the others. Revalidate blocked checkpoints hourly with the current reader and clear markers the reader accepts. Return a dedicated error for ambiguous legacy delete residue instead of the retryable SlowDown. Implements rustfs/backlog#2902. Fixes rustfs/rustfs#8664. Addresses rustfs/rustfs#8366, rustfs/rustfs#8565, rustfs/rustfs#8645 and part of rustfs/rustfs#8608. Co-authored-by: Hauser <housemecn@gmail.com>