From 2a3acc4f24fd230af401956684c70ca6c42af9e0 Mon Sep 17 00:00:00 2001
From: Harshavardhana
Date: Mon, 10 Mar 2025 19:52:42 -0700
Subject: [PATCH] drive heal if we have enough success, do not error setList()
(#516)
---
cmd/global-heal.go | 3 ++-
cmd/metacache-set.go | 15 ++-------------
2 files changed, 4 insertions(+), 14 deletions(-)
diff --git a/cmd/global-heal.go b/cmd/global-heal.go
index 2985504870d38..7f7891e7502eb 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 91c31d320cc2a..da57ea9d5c6ac 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.