From 58ec835af0d9dfcd8ef25ac165e085c7261c2c5a Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Fri, 18 Nov 2022 05:48:22 -0800 Subject: [PATCH] fix: skip free version ID and marker in metadata equality (#16093) --- cmd/xl-storage-format-v2.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/cmd/xl-storage-format-v2.go b/cmd/xl-storage-format-v2.go index bb1543d8e..1cf14b59c 100644 --- a/cmd/xl-storage-format-v2.go +++ b/cmd/xl-storage-format-v2.go @@ -610,7 +610,19 @@ func (j xlMetaV2Object) ToFileInfo(volume, path string) (FileInfo, error) { fi.Metadata[k] = v } + + tierFVIDKey := ReservedMetadataPrefixLower + tierFVID + tierFVMarkerKey := ReservedMetadataPrefixLower + tierFVMarker for k, v := range j.MetaSys { + // Make sure we skip free-version-id, similar to AddVersion() + if len(k) > len(ReservedMetadataPrefixLower) && strings.EqualFold(k[:len(ReservedMetadataPrefixLower)], ReservedMetadataPrefixLower) { + // Skip tierFVID, tierFVMarker keys; it's used + // only for creating free-version. + switch k { + case tierFVIDKey, tierFVMarkerKey: + continue + } + } switch { case strings.HasPrefix(strings.ToLower(k), ReservedMetadataPrefixLower), equals(k, VersionPurgeStatusKey): fi.Metadata[k] = string(v)