From 64f5c6103fe094516b93ecff66788d89eecaa71c Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Wed, 23 Jul 2025 04:21:15 -0700 Subject: [PATCH] wait for metadata reads on minDisks+1 for HEAD/GET when data==parity (#21449) fixes a regression since #19741 --- cmd/erasure-object.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cmd/erasure-object.go b/cmd/erasure-object.go index fa5e902ab..f103fc440 100644 --- a/cmd/erasure-object.go +++ b/cmd/erasure-object.go @@ -828,6 +828,13 @@ func (er erasureObjects) getObjectFileInfo(ctx context.Context, bucket, object s minDisks = er.setDriveCount - er.defaultParityCount } + if minDisks == er.setDriveCount/2 { + // when data and parity are same we must atleast + // wait for response from 1 extra drive to avoid + // split-brain. + minDisks++ + } + calcQuorum := func(metaArr []FileInfo, errs []error) (FileInfo, []FileInfo, []StorageAPI, time.Time, string, error) { readQuorum, _, err := objectQuorumFromMeta(ctx, metaArr, errs, er.defaultParityCount) if err != nil {