From aa874010e24483efc919f35e1a34cd47f86272b1 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Fri, 29 Jul 2022 10:03:53 -0700 Subject: [PATCH] fix: regression in resolving the right versions (#15430) fix: regression in resolving right versions commit d480022711 caused a regression in real resolver, by picking up incorrect versionID. --- buildscripts/resolve-right-versions.sh | 2 +- cmd/erasure-object.go | 19 +++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/buildscripts/resolve-right-versions.sh b/buildscripts/resolve-right-versions.sh index 066fc207c..61d2c149f 100755 --- a/buildscripts/resolve-right-versions.sh +++ b/buildscripts/resolve-right-versions.sh @@ -39,7 +39,7 @@ function start_minio_5drive() { "${MINIO[@]}" --address ":$start_port" "${WORK_DIR}/cicd-corpus/disk{1...5}" > "${WORK_DIR}/server1.log" 2>&1 & pid=$! disown $pid - sleep 30 + sleep 5 if ! ps -p ${pid} 1>&2 >/dev/null; then echo "server1 log:" diff --git a/cmd/erasure-object.go b/cmd/erasure-object.go index 79480f7ee..8b15870e1 100644 --- a/cmd/erasure-object.go +++ b/cmd/erasure-object.go @@ -534,6 +534,11 @@ func readAllXL(ctx context.Context, disks []StorageAPI, bucket, object string, r return metaFileInfos, errs } + versionID := lfi.VersionID + if versionID == "" { + versionID = nullVersionID + } + for index := range metadataArray { if metadataArray[index] == nil { continue @@ -541,21 +546,15 @@ func readAllXL(ctx context.Context, disks []StorageAPI, bucket, object string, r // make sure to preserve this for diskmtime based healing bugfix. diskMTime := metaFileInfos[index].DiskMTime - metaFileInfos[index], errs[index] = metadataArray[index].ToFileInfo(bucket, object, "") + metaFileInfos[index], errs[index] = metadataArray[index].ToFileInfo(bucket, object, versionID) if errs[index] != nil { continue } - if metaFileInfos[index].IsValid() && metaFileInfos[index].ModTime.Equal(lfi.ModTime) { - versionID := metaFileInfos[index].VersionID - if versionID == "" { - versionID = nullVersionID - } - if readData { - metaFileInfos[index].Data = metadataArray[index].data.find(versionID) - } - metaFileInfos[index].DiskMTime = diskMTime + if readData { + metaFileInfos[index].Data = metadataArray[index].data.find(versionID) } + metaFileInfos[index].DiskMTime = diskMTime } // Return all the metadata.