Files
rustfs/crates/replication
唐小鸭 6141694c10 fix(replication): stop duplicate re-drives on own-version-id targets
A target that mints its own version ids (Wasabi, AWS S3) answers a
version-addressed HEAD for the source uuid with 404, which the worker read
as "replica missing": every heal, MRF retry and existing-object resync
re-drive PUT the object again and minted one more target version, while
the source reported COMPLETED.

Record a per-target VersionIdentityCapability verdict from every
replication write response and from replication-check's VersionFidelity
phase. On a 404 from a target proven to mint its own ids, locate the
replica by exact key and ETag through ListObjectVersions, HEAD the id the
target assigned, and reuse the ETag-comparison fallback in the heal
decision, the existing-object resync path and the resync verification.
Keep the verdict across target edits that address the same service, since
a resync start rewrites the target entry in place.

Refs: rustfs/backlog#2340
2026-09-07 00:58:06 +08:00
..