diff --git a/cmd/global-heal.go b/cmd/global-heal.go index 298550487..7f7891e75 100644 --- a/cmd/global-heal.go +++ b/cmd/global-heal.go @@ -539,7 +539,8 @@ func (er *erasureObjects) healErasureSet(ctx context.Context, buckets []string, go healEntry(bucket, *entry) }, finished: func(errs []error) { - if countErrs(errs, nil) != len(errs) { + success := countErrs(errs, nil) + if success < expectedDisks { retErr = fmt.Errorf("one or more errors reported during listing: %v", errors.Join(errs...)) } }, diff --git a/cmd/metacache-set.go b/cmd/metacache-set.go index 91c31d320..da57ea9d5 100644 --- a/cmd/metacache-set.go +++ b/cmd/metacache-set.go @@ -1110,7 +1110,7 @@ func listPathRaw(ctx context.Context, opts listPathRawOptions) (err error) { continue } hasErr++ - errs[i] = err + errs[i] = fmt.Errorf("drive: %s returned err: %v", disks[i], err) continue } // If no current, add it. @@ -1159,18 +1159,7 @@ func listPathRaw(ctx context.Context, opts listPathRawOptions) (err error) { if opts.finished != nil { opts.finished(errs) } - var combinedErr []string - for i, err := range errs { - if err != nil { - if disks[i] != nil { - combinedErr = append(combinedErr, - fmt.Sprintf("drive %s returned: %s", disks[i], err)) - } else { - combinedErr = append(combinedErr, err.Error()) - } - } - } - return errors.New(strings.Join(combinedErr, ", ")) + return errors.Join(errs...) } // Break if all at EOF or error.