From d5059840efdea7174e5a77689a4b956e3de2b231 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Fri, 26 May 2023 09:57:44 -0700 Subject: [PATCH] fix: for delete marked objects choose appropriate parity (#17287) --- cmd/erasure-metadata.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/cmd/erasure-metadata.go b/cmd/erasure-metadata.go index 2aeeb79ee..2f8005170 100644 --- a/cmd/erasure-metadata.go +++ b/cmd/erasure-metadata.go @@ -448,7 +448,7 @@ func commonParity(parities []int, defaultParityCount int) int { occMap[p]++ } - var maxOcc, commonParity int + var maxOcc, cparity int for parity, occ := range occMap { if parity == -1 { // Ignore non defined parity @@ -468,7 +468,7 @@ func commonParity(parities []int, defaultParityCount int) int { if occ > maxOcc { maxOcc = occ - commonParity = parity + cparity = parity } } @@ -476,7 +476,7 @@ func commonParity(parities []int, defaultParityCount int) int { // Did not found anything useful return -1 } - return commonParity + return cparity } func listObjectParities(partsMetadata []FileInfo, errs []error) (parities []int) { @@ -490,7 +490,9 @@ func listObjectParities(partsMetadata []FileInfo, errs []error) (parities []int) parities[index] = -1 continue } - if !metadata.Deleted { + if metadata.Deleted { + parities[index] = len(partsMetadata) / 2 + } else { parities[index] = metadata.Erasure.ParityBlocks } }