copy bucket slice to avoid skipping .minio.sys/buckets (#13912)

healing was skipping `.minio.sys/buckets` path so
essentially not healing `.usage.json` - fix this
by making a copy of `buckets` slice.
This commit is contained in:
Harshavardhana
2021-12-15 09:18:09 -08:00
committed by GitHub
parent 88ad742da0
commit 5f7e6d03ff
3 changed files with 20 additions and 10 deletions

View File

@@ -168,9 +168,14 @@ func (er *erasureObjects) healErasureSet(ctx context.Context, buckets []string,
bgSeq := mustGetHealSequence(ctx)
scanMode := globalHealConfig.ScanMode()
// Make sure to copy since `buckets slice`
// is modified in place by tracker.
healBuckets := make([]string, len(buckets))
copy(healBuckets, buckets)
var retErr error
// Heal all buckets with all objects
for _, bucket := range buckets {
for _, bucket := range healBuckets {
if tracker.isHealed(bucket) {
continue
}
@@ -318,6 +323,8 @@ func (er *erasureObjects) healErasureSet(ctx context.Context, buckets []string,
default:
tracker.bucketDone(bucket)
logger.LogIf(ctx, tracker.update(ctx))
logger.Info("Healing bucket %s content on %s erasure set complete",
bucket, humanize.Ordinal(tracker.SetIndex+1))
}
}
tracker.Object = ""