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.
This commit is contained in:
Harshavardhana 2021-08-24 12:43:57 -07:00 committed by GitHub
parent addf15f61f
commit 85dfb4351c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -19,7 +19,6 @@ package cmd
import ( import (
"context" "context"
"errors"
"fmt" "fmt"
"sort" "sort"
"time" "time"
@ -201,7 +200,12 @@ func (er *erasureObjects) healErasureSet(ctx context.Context, buckets []BucketIn
disks, _ := er.getOnlineDisksWithHealing() disks, _ := er.getOnlineDisksWithHealing()
if len(disks) == 0 { 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. // Limit listing to 3 drives.