wait for metadata reads on minDisks+1 for HEAD/GET when data==parity (#21449)

fixes a regression since #19741
This commit is contained in:
Harshavardhana 2025-07-23 04:21:15 -07:00 committed by GitHub
parent e909be6380
commit 64f5c6103f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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 {