Skip to content

Commit 3a8e356

Browse files
committed
Return multiple errors when fanout close
Use tsdb.MultiError to return multiple errors when fanout close. Currently, it returns only on error. Signed-off-by: MIBc <[email protected]>
1 parent d8c06bb commit 3a8e356

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

storage/fanout.go

+7-8
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/pkg/errors"
2525
"github.com/prometheus/common/model"
2626
"github.com/prometheus/prometheus/pkg/labels"
27+
"github.com/prometheus/tsdb"
2728
)
2829

2930
type fanout struct {
@@ -114,14 +115,13 @@ func (f *fanout) Close() error {
114115
return err
115116
}
116117

117-
// TODO return multiple errors?
118-
var lastErr error
118+
var merr tsdb.MultiError
119119
for _, storage := range f.secondaries {
120120
if err := storage.Close(); err != nil {
121-
lastErr = err
121+
merr.Add(err)
122122
}
123123
}
124-
return lastErr
124+
return merr.Err()
125125
}
126126

127127
// fanoutAppender implements Appender.
@@ -333,14 +333,13 @@ func (q *mergeQuerier) LabelNames() ([]string, error) {
333333

334334
// Close releases the resources of the Querier.
335335
func (q *mergeQuerier) Close() error {
336-
// TODO return multiple errors?
337-
var lastErr error
336+
var merr tsdb.MultiError
338337
for _, querier := range q.queriers {
339338
if err := querier.Close(); err != nil {
340-
lastErr = err
339+
merr.Add(err)
341340
}
342341
}
343-
return lastErr
342+
return merr.Err()
344343
}
345344

346345
// mergeSeriesSet implements SeriesSet

0 commit comments

Comments
 (0)