From 85dfb4351c96c01d977de9b843016bee95970539 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Tue, 24 Aug 2021 12:43:57 -0700 Subject: [PATCH] fix: allow an entire set to be dropped (#13060) proceed to heal the cluster when all the drives in a set have failed, this is extremely rare occurrence but even if it happens we allow the cluster to be functional. --- cmd/global-heal.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmd/global-heal.go b/cmd/global-heal.go index 6fef4d6f3..3c6a0b3ee 100644 --- a/cmd/global-heal.go +++ b/cmd/global-heal.go @@ -19,7 +19,6 @@ package cmd import ( "context" - "errors" "fmt" "sort" "time" @@ -201,7 +200,12 @@ func (er *erasureObjects) healErasureSet(ctx context.Context, buckets []BucketIn disks, _ := er.getOnlineDisksWithHealing() if len(disks) == 0 { - return errors.New("healErasureSet: No non-healing disks found") + // all disks are healing in this set, this is allowed + // so we simply proceed to next bucket, marking the bucket + // as done as there are no objects to heal. + tracker.bucketDone(bucket.Name) + logger.LogIf(ctx, tracker.update(ctx)) + continue } // Limit listing to 3 drives.