From be7f67268d1e25462b7920b84ced317772e84b8c Mon Sep 17 00:00:00 2001 From: Kaloyan Raev Date: Wed, 28 Oct 2020 18:23:17 +0200 Subject: [PATCH] fix: Do not cleanup range files in cache SaveMetadata when total hits are false (#10728) --- cmd/disk-cache-backend.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/cmd/disk-cache-backend.go b/cmd/disk-cache-backend.go index 4b2c3e389..856891227 100644 --- a/cmd/disk-cache-backend.go +++ b/cmd/disk-cache-backend.go @@ -538,12 +538,15 @@ func (c *diskCache) saveMetadata(ctx context.Context, bucket, object string, met } m.Ranges[rs.String(actualSize)] = rsFileName } - } else { + } + if rs == nil && !incHitsOnly { // this is necessary cleanup of range files if entire object is cached. - for _, f := range m.Ranges { - removeAll(pathJoin(cachedPath, f)) + if _, err := os.Stat(pathJoin(cachedPath, cacheDataFile)); err == nil { + for _, f := range m.Ranges { + removeAll(pathJoin(cachedPath, f)) + } + m.Ranges = nil } - m.Ranges = nil } m.Stat.Size = actualSize m.Stat.ModTime = UTCNow()