diff --git a/CHANGELOG.md b/CHANGELOG.md index 71f1a98b4b..f79940f769 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ Changelog for FrostFS Node - `neo-go` to `v0.101.1` - `google.golang.org/grpc` to `v1.55.0` - `paulmach/orb` to `v0.9.2` +- `go.etcd.io/bbolt` to `v1.3.7` - `github.com/nats-io/nats.go` to `v1.25.0` - `golang.org/x/sync` to `v0.2.0` - `golang.org/x/term` to `v0.8.0` diff --git a/go.mod b/go.mod index ed92cc7b67..d90f45766a 100644 --- a/go.mod +++ b/go.mod @@ -29,7 +29,7 @@ require ( github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.15.0 github.com/stretchr/testify v1.8.3 - go.etcd.io/bbolt v1.3.6 + go.etcd.io/bbolt v1.3.7 go.opentelemetry.io/otel v1.15.1 go.opentelemetry.io/otel/trace v1.15.1 go.uber.org/atomic v1.11.0 diff --git a/go.sum b/go.sum index 913a57613a..648afba0e2 100644 Binary files a/go.sum and b/go.sum differ diff --git a/pkg/local_object_storage/metabase/iterators.go b/pkg/local_object_storage/metabase/iterators.go index 4c9dc782c3..ba22566a30 100644 --- a/pkg/local_object_storage/metabase/iterators.go +++ b/pkg/local_object_storage/metabase/iterators.go @@ -72,12 +72,8 @@ func (db *DB) iterateExpired(tx *bbolt.Tx, epoch uint64, h ExpiredObjectHandler) return fmt.Errorf("could not parse container ID of expired bucket: %w", err) } - return b.ForEach(func(expKey, _ []byte) error { + return b.ForEachBucket(func(expKey []byte) error { bktExpired := b.Bucket(expKey) - if bktExpired == nil { - return nil - } - expiresAfter, err := strconv.ParseUint(string(expKey), 10, 64) if err != nil { return fmt.Errorf("could not parse expiration epoch: %w", err) diff --git a/pkg/local_object_storage/metabase/select.go b/pkg/local_object_storage/metabase/select.go index a4b14f77ce..2ced6c4b7c 100644 --- a/pkg/local_object_storage/metabase/select.go +++ b/pkg/local_object_storage/metabase/select.go @@ -315,12 +315,8 @@ func selectOutsideFKBT( bktExcl := tx.Bucket(name) if bktExcl != nil { - _ = bktExcl.ForEach(func(k, _ []byte) error { + _ = bktExcl.ForEachBucket(func(k []byte) error { exclBktLeaf := bktExcl.Bucket(k) - if exclBktLeaf == nil { - return nil - } - return exclBktLeaf.ForEach(func(k, _ []byte) error { mExcl[string(k)] = struct{}{}