build(deps): bump go.etcd.io/bbolt from 1.3.7 to 1.3.8

Bumps [go.etcd.io/bbolt](https://github.com/etcd-io/bbolt) from 1.3.7 to 1.3.8.
- [Release notes](https://github.com/etcd-io/bbolt/releases)
- [Commits](https://github.com/etcd-io/bbolt/compare/v1.3.7...v1.3.8)

---
updated-dependencies:
- dependency-name: go.etcd.io/bbolt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
This commit is contained in:
dependabot[bot] 2023-12-13 00:24:42 +00:00 committed by GitHub
parent 8f1479132f
commit 39ba0347ee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 43 additions and 26 deletions

2
go.mod
View File

@ -56,7 +56,7 @@ require (
github.com/tchap/go-patricia/v2 v2.3.1 github.com/tchap/go-patricia/v2 v2.3.1
github.com/urfave/cli v1.22.14 github.com/urfave/cli v1.22.14
github.com/vishvananda/netlink v1.2.1-beta.2 github.com/vishvananda/netlink v1.2.1-beta.2
go.etcd.io/bbolt v1.3.7 go.etcd.io/bbolt v1.3.8
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.45.0 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.45.0
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0
go.opentelemetry.io/otel v1.19.0 go.opentelemetry.io/otel v1.19.0

4
go.sum
View File

@ -686,8 +686,8 @@ github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPS
github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg=
go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA=
go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw=
go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg= go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=

View File

@ -1,22 +1,11 @@
package bbolt package bbolt
import ( import (
"syscall" "golang.org/x/sys/unix"
"unsafe"
)
const (
msAsync = 1 << iota // perform asynchronous writes
msSync // perform synchronous writes
msInvalidate // invalidate cached data
) )
func msync(db *DB) error { func msync(db *DB) error {
_, _, errno := syscall.Syscall(syscall.SYS_MSYNC, uintptr(unsafe.Pointer(db.data)), uintptr(db.datasz), msInvalidate) return unix.Msync(db.data[:db.datasz], unix.MS_INVALIDATE)
if errno != 0 {
return errno
}
return nil
} }
func fdatasync(db *DB) error { func fdatasync(db *DB) error {

46
vendor/go.etcd.io/bbolt/db.go generated vendored
View File

@ -57,6 +57,12 @@ const (
// All data access is performed through transactions which can be obtained through the DB. // All data access is performed through transactions which can be obtained through the DB.
// All the functions on DB will return a ErrDatabaseNotOpen if accessed before Open() is called. // All the functions on DB will return a ErrDatabaseNotOpen if accessed before Open() is called.
type DB struct { type DB struct {
// Put `stats` at the first field to ensure it's 64-bit aligned. Note that
// the first word in an allocated struct can be relied upon to be 64-bit
// aligned. Refer to https://pkg.go.dev/sync/atomic#pkg-note-BUG. Also
// refer to discussion in https://github.com/etcd-io/bbolt/issues/577.
stats Stats
// When enabled, the database will perform a Check() after every commit. // When enabled, the database will perform a Check() after every commit.
// A panic is issued if the database is in an inconsistent state. This // A panic is issued if the database is in an inconsistent state. This
// flag has a large performance impact so it should only be used for // flag has a large performance impact so it should only be used for
@ -147,7 +153,6 @@ type DB struct {
opened bool opened bool
rwtx *Tx rwtx *Tx
txs []*Tx txs []*Tx
stats Stats
freelist *freelist freelist *freelist
freelistLoad sync.Once freelistLoad sync.Once
@ -424,7 +429,7 @@ func (db *DB) hasSyncedFreelist() bool {
// mmap opens the underlying memory-mapped file and initializes the meta references. // mmap opens the underlying memory-mapped file and initializes the meta references.
// minsz is the minimum size that the new mmap can be. // minsz is the minimum size that the new mmap can be.
func (db *DB) mmap(minsz int) error { func (db *DB) mmap(minsz int) (err error) {
db.mmaplock.Lock() db.mmaplock.Lock()
defer db.mmaplock.Unlock() defer db.mmaplock.Unlock()
@ -459,17 +464,27 @@ func (db *DB) mmap(minsz int) error {
} }
// Unmap existing data before continuing. // Unmap existing data before continuing.
if err := db.munmap(); err != nil { if err = db.munmap(); err != nil {
return err return err
} }
// Memory-map the data file as a byte slice. // Memory-map the data file as a byte slice.
// gofail: var mapError string // gofail: var mapError string
// return errors.New(mapError) // return errors.New(mapError)
if err := mmap(db, size); err != nil { if err = mmap(db, size); err != nil {
return err return err
} }
// Perform unmmap on any error to reset all data fields:
// dataref, data, datasz, meta0 and meta1.
defer func() {
if err != nil {
if unmapErr := db.munmap(); unmapErr != nil {
err = fmt.Errorf("%w; rollback unmap also failed: %v", err, unmapErr)
}
}
}()
if db.Mlock { if db.Mlock {
// Don't allow swapping of data file // Don't allow swapping of data file
if err := db.mlock(fileSize); err != nil { if err := db.mlock(fileSize); err != nil {
@ -553,6 +568,8 @@ func (db *DB) mmapSize(size int) (int, error) {
} }
func (db *DB) munlock(fileSize int) error { func (db *DB) munlock(fileSize int) error {
// gofail: var munlockError string
// return errors.New(munlockError)
if err := munlock(db, fileSize); err != nil { if err := munlock(db, fileSize); err != nil {
return fmt.Errorf("munlock error: " + err.Error()) return fmt.Errorf("munlock error: " + err.Error())
} }
@ -560,6 +577,8 @@ func (db *DB) munlock(fileSize int) error {
} }
func (db *DB) mlock(fileSize int) error { func (db *DB) mlock(fileSize int) error {
// gofail: var mlockError string
// return errors.New(mlockError)
if err := mlock(db, fileSize); err != nil { if err := mlock(db, fileSize); err != nil {
return fmt.Errorf("mlock error: " + err.Error()) return fmt.Errorf("mlock error: " + err.Error())
} }
@ -649,9 +668,10 @@ func (db *DB) close() error {
// Clear ops. // Clear ops.
db.ops.writeAt = nil db.ops.writeAt = nil
var errs []error
// Close the mmap. // Close the mmap.
if err := db.munmap(); err != nil { if err := db.munmap(); err != nil {
return err errs = append(errs, err)
} }
// Close file handles. // Close file handles.
@ -660,18 +680,22 @@ func (db *DB) close() error {
if !db.readOnly { if !db.readOnly {
// Unlock the file. // Unlock the file.
if err := funlock(db); err != nil { if err := funlock(db); err != nil {
return fmt.Errorf("bolt.Close(): funlock error: %w", err) errs = append(errs, fmt.Errorf("bolt.Close(): funlock error: %w", err))
} }
} }
// Close the file descriptor. // Close the file descriptor.
if err := db.file.Close(); err != nil { if err := db.file.Close(); err != nil {
return fmt.Errorf("db file close: %s", err) errs = append(errs, fmt.Errorf("db file close: %w", err))
} }
db.file = nil db.file = nil
} }
db.path = "" db.path = ""
if len(errs) > 0 {
return errs[0]
}
return nil return nil
} }
@ -1263,6 +1287,12 @@ var DefaultOptions = &Options{
// Stats represents statistics about the database. // Stats represents statistics about the database.
type Stats struct { type Stats struct {
// Put `TxStats` at the first field to ensure it's 64-bit aligned. Note
// that the first word in an allocated struct can be relied upon to be
// 64-bit aligned. Refer to https://pkg.go.dev/sync/atomic#pkg-note-BUG.
// Also refer to discussion in https://github.com/etcd-io/bbolt/issues/577.
TxStats TxStats // global, ongoing stats.
// Freelist stats // Freelist stats
FreePageN int // total number of free pages on the freelist FreePageN int // total number of free pages on the freelist
PendingPageN int // total number of pending pages on the freelist PendingPageN int // total number of pending pages on the freelist
@ -1272,8 +1302,6 @@ type Stats struct {
// Transaction stats // Transaction stats
TxN int // total number of started read transactions TxN int // total number of started read transactions
OpenTxN int // number of currently open read transactions OpenTxN int // number of currently open read transactions
TxStats TxStats // global, ongoing stats.
} }
// Sub calculates and returns the difference between two sets of database stats. // Sub calculates and returns the difference between two sets of database stats.

2
vendor/modules.txt vendored
View File

@ -396,7 +396,7 @@ github.com/vishvananda/netlink/nl
# github.com/vishvananda/netns v0.0.4 # github.com/vishvananda/netns v0.0.4
## explicit; go 1.17 ## explicit; go 1.17
github.com/vishvananda/netns github.com/vishvananda/netns
# go.etcd.io/bbolt v1.3.7 # go.etcd.io/bbolt v1.3.8
## explicit; go 1.17 ## explicit; go 1.17
go.etcd.io/bbolt go.etcd.io/bbolt
# go.opencensus.io v0.24.0 # go.opencensus.io v0.24.0