From 9c4bb39571cbd96f447646f33ed8c001e9bf098c Mon Sep 17 00:00:00 2001 From: Feng Ruohang Date: Sun, 25 Oct 2026 16:05:28 +0800 Subject: [PATCH] fix: preserve versioning context when verifying recovery Signed-off-by: Feng Ruohang --- cmd/erasure-server-pool.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/cmd/erasure-server-pool.go b/cmd/erasure-server-pool.go index a07c9bc9a..edf48848c 100644 --- a/cmd/erasure-server-pool.go +++ b/cmd/erasure-server-pool.go @@ -1259,7 +1259,12 @@ func (z *erasureServerPools) PutObject(ctx context.Context, bucket string, objec // committed write on failure; a read failure is not permission to undo. var latest ObjectInfo var latestIdx int - latest, latestIdx, err = z.getLatestObjectInfoWithIdx(ctx, bucket, object, ObjectOptions{NoLock: true, NoAuditLog: true}) + latest, latestIdx, err = z.getLatestObjectInfoWithIdx(ctx, bucket, object, ObjectOptions{ + NoLock: true, + NoAuditLog: true, + Versioned: opts.Versioned, + VersionSuspended: opts.VersionSuspended, + }) if err == nil && (latestIdx != idx || latest.VersionID != oi.VersionID || latest.ETag != oi.ETag || !latest.ModTime.Equal(oi.ModTime)) { err = InsufficientReadQuorum{Bucket: bucket, Object: decodeDirObject(object), Err: errErasureReadQuorum, Type: RQInconsistentMeta} }