Skip to content

Commit ac3ba45

Browse files
authored
Replace uber-go/multierr with errors.Join (#242)
1 parent 4fb7cfb commit ac3ba45

File tree

4 files changed

+29
-54
lines changed

4 files changed

+29
-54
lines changed

fuzz/go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module github.com/ipfs/go-datastore/fuzz
33
go 1.23.0
44

55
require (
6-
github.com/ipfs/go-datastore v0.8.0
6+
github.com/ipfs/go-datastore v0.8.2
77
github.com/ipfs/go-ds-flatfs v0.5.3
88
github.com/spf13/pflag v1.0.6
99
)

go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ require (
99
github.com/stretchr/testify v1.10.0
1010
go.opentelemetry.io/otel v1.37.0
1111
go.opentelemetry.io/otel/trace v1.37.0
12-
go.uber.org/multierr v1.11.0
1312
)
1413

1514
require (

go.sum

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@ go.opentelemetry.io/otel/metric v1.37.0 h1:mvwbQS5m0tbmqML4NqK+e3aDiO02vsf/Wgbsd
3131
go.opentelemetry.io/otel/metric v1.37.0/go.mod h1:04wGrZurHYKOc+RKeye86GwKiTb9FKm1WHtO+4EVr2E=
3232
go.opentelemetry.io/otel/trace v1.37.0 h1:HLdcFNbRQBE2imdSEgm/kwqmQj1Or1l/7bW6mxVK7z4=
3333
go.opentelemetry.io/otel/trace v1.37.0/go.mod h1:TlgrlQ+PtQO5XFerSPUYG0JSgGyryXewPGyayAWSBS0=
34-
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
35-
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
3634
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
3735
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
3836
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=

mount/mount.go

Lines changed: 28 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ import (
1313

1414
ds "github.com/ipfs/go-datastore"
1515
"github.com/ipfs/go-datastore/query"
16-
17-
"go.uber.org/multierr"
1816
)
1917

2018
var (
@@ -236,22 +234,19 @@ func (d *Datastore) Put(ctx context.Context, key ds.Key, value []byte) error {
236234

237235
// Sync implements Datastore.Sync
238236
func (d *Datastore) Sync(ctx context.Context, prefix ds.Key) error {
239-
var merr error
237+
var errs []error
240238

241239
// Sync all mount points below the prefix
242240
// Sync the mount point right at (or above) the prefix
243241
dstores, prefixes, rest := d.lookupAll(prefix)
244242
for i, suffix := range rest {
245243
if err := dstores[i].Sync(ctx, suffix); err != nil {
246-
merr = multierr.Append(merr, fmt.Errorf(
247-
"syncing datastore at %s: %w",
248-
prefixes[i].String(),
249-
err,
250-
))
244+
err = fmt.Errorf("syncing datastore at %s: %w", prefixes[i].String(), err)
245+
errs = append(errs, err)
251246
}
252247
}
253248

254-
return merr
249+
return errors.Join(errs...)
255250
}
256251

257252
// Get returns the value associated with the key from the appropriate datastore.
@@ -357,39 +352,33 @@ func (d *Datastore) Query(ctx context.Context, master query.Query) (query.Result
357352

358353
// Close closes all mounted datastores.
359354
func (d *Datastore) Close() error {
360-
var merr error
355+
var errs []error
361356
for _, d := range d.mounts {
362357
err := d.Datastore.Close()
363358
if err != nil {
364-
merr = multierr.Append(merr, fmt.Errorf(
365-
"closing datastore at %s: %w",
366-
d.Prefix.String(),
367-
err,
368-
))
359+
err = fmt.Errorf("closing datastore at %s: %w", d.Prefix.String(), err)
360+
errs = append(errs, err)
369361
}
370362
}
371-
return merr
363+
return errors.Join(errs...)
372364
}
373365

374366
// DiskUsage returns the sum of DiskUsages for the mounted datastores.
375367
// Non PersistentDatastores will not be accounted.
376368
func (d *Datastore) DiskUsage(ctx context.Context) (uint64, error) {
377369
var (
378-
merr error
370+
errs []error
379371
duTotal uint64 = 0
380372
)
381373
for _, d := range d.mounts {
382374
du, err := ds.DiskUsage(ctx, d.Datastore)
383375
duTotal += du
384376
if err != nil {
385-
merr = multierr.Append(merr, fmt.Errorf(
386-
"getting disk usage at %s: %w",
387-
d.Prefix.String(),
388-
err,
389-
))
377+
err = fmt.Errorf("getting disk usage at %s: %w", d.Prefix.String(), err)
378+
errs = append(errs, err)
390379
}
391380
}
392-
return duTotal, merr
381+
return duTotal, errors.Join(errs...)
393382
}
394383

395384
type mountBatch struct {
@@ -452,62 +441,51 @@ func (mt *mountBatch) Commit(ctx context.Context) error {
452441
mt.lk.Lock()
453442
defer mt.lk.Unlock()
454443

455-
var merr error
444+
var errs []error
456445
for p, t := range mt.mounts {
457446
if err := t.Commit(ctx); err != nil {
458-
merr = multierr.Append(merr, fmt.Errorf(
459-
"committing batch to datastore at %s: %w",
460-
p, err,
461-
))
447+
err = fmt.Errorf("committing batch to datastore at %s: %w", p, err)
448+
errs = append(errs, err)
462449
}
463450
}
464-
return merr
451+
return errors.Join(errs...)
465452
}
466453

467454
func (d *Datastore) Check(ctx context.Context) error {
468-
var merr error
455+
var errs []error
469456
for _, m := range d.mounts {
470457
if c, ok := m.Datastore.(ds.CheckedDatastore); ok {
471458
if err := c.Check(ctx); err != nil {
472-
merr = multierr.Append(merr, fmt.Errorf(
473-
"checking datastore at %s: %w",
474-
m.Prefix.String(),
475-
err,
476-
))
459+
err = fmt.Errorf("checking datastore at %s: %w", m.Prefix.String(), err)
460+
errs = append(errs, err)
477461
}
478462
}
479463
}
480-
return merr
464+
return errors.Join(errs...)
481465
}
482466

483467
func (d *Datastore) Scrub(ctx context.Context) error {
484-
var merr error
468+
var errs []error
485469
for _, m := range d.mounts {
486470
if c, ok := m.Datastore.(ds.ScrubbedDatastore); ok {
487471
if err := c.Scrub(ctx); err != nil {
488-
merr = multierr.Append(merr, fmt.Errorf(
489-
"scrubbing datastore at %s: %w",
490-
m.Prefix.String(),
491-
err,
492-
))
472+
err = fmt.Errorf("scrubbing datastore at %s: %w", m.Prefix.String(), err)
473+
errs = append(errs, err)
493474
}
494475
}
495476
}
496-
return merr
477+
return errors.Join(errs...)
497478
}
498479

499480
func (d *Datastore) CollectGarbage(ctx context.Context) error {
500-
var merr error
481+
var errs []error
501482
for _, m := range d.mounts {
502483
if c, ok := m.Datastore.(ds.GCDatastore); ok {
503484
if err := c.CollectGarbage(ctx); err != nil {
504-
merr = multierr.Append(merr, fmt.Errorf(
505-
"gc on datastore at %s: %w",
506-
m.Prefix.String(),
507-
err,
508-
))
485+
err = fmt.Errorf("gc on datastore at %s: %w", m.Prefix.String(), err)
486+
errs = append(errs, err)
509487
}
510488
}
511489
}
512-
return merr
490+
return errors.Join(errs...)
513491
}

0 commit comments

Comments
 (0)