bump go.etcd.io/bbolt v1.3.3

this brings the dependency back to a released version:

- go.etcd.io/bbolt 2eb7227ade...v1.3.3
  - etcd-io/bbolt#153 fix rollback panic bug
    - fixes etcd-io/bbolt#152 Panic (index out of range) on writeable tx rollback with db.NoFreelistSync

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
Sebastiaan van Stijn
2019-08-09 22:56:54 +02:00
parent ea13c9fe99
commit b6fca48fed
3 changed files with 44 additions and 3 deletions

22
vendor/go.etcd.io/bbolt/freelist.go generated vendored
View File

@@ -349,6 +349,28 @@ func (f *freelist) reload(p *page) {
f.readIDs(a)
}
// noSyncReload reads the freelist from pgids and filters out pending items.
func (f *freelist) noSyncReload(pgids []pgid) {
// Build a cache of only pending pages.
pcache := make(map[pgid]bool)
for _, txp := range f.pending {
for _, pendingID := range txp.ids {
pcache[pendingID] = true
}
}
// Check each page in the freelist and build a new available freelist
// with any pages not in the pending lists.
var a []pgid
for _, id := range pgids {
if !pcache[id] {
a = append(a, id)
}
}
f.readIDs(a)
}
// reindex rebuilds the free cache based on available and pending free lists.
func (f *freelist) reindex() {
ids := f.getFreePageIDs()