On 2023/05/25 11:31, Pavel Korovin wrote: > Hello, > > Please find databases/bbolt port attached. > https://pkg.go.dev/go.etcd.io/bbolt > > It was nice to have it on hand while recovering corrupted Consul/Vault > databases after power outage. > > OK to import? > > From pkg/DESCR: > Package Bbolt implements a low-level key/value store in pure Go. It supports > fully serializable transactions, ACID semantics, and lock-free MVCC with > multiple readers and a single writer. Bolt can be used for projects that want > a > simple data store without the need to add large dependencies such as Postgres > or > MySQL. > > Bolt is a single-level, zero-copy, B+tree data store. This means that Bolt is > optimized for fast read access and does not require recovery in the event of a > system crash. Transactions which have not finished committing will simply be > rolled back in the event of a crash. > > The design of Bolt is based on Howard Chu's LMDB database project.
The port generally looks good. I found DESCR a bit confusing (bbolt vs Bolt) as I wasn't aware of the history, I've rewritten it a bit which I think is a bit easier for me to understand. "make test" fails for me, log below. I don't know if that's important. ---- bbolt implements a low-level key/value store in pure Go. It supports fully serializable transactions, ACID semantics, and lock-free MVCC with multiple readers and a single writer. It is a fork of Ben Johnson's "Bolt" key/value store aimed at providing the Go community with an active maintenance and development target for Bolt. Bolt can be used for projects that want a simple data store without the need to add large dependencies such as Postgres or MySQL. Bolt is a single-level, zero-copy, B+tree data store. This means that Bolt is optimized for fast read access and does not require recovery in the event of a system crash. Transactions which have not finished committing will simply be rolled back in the event of a crash. The design of Bolt is based on Howard Chu's LMDB database project. ---- go: downloading github.com/stretchr/testify v1.8.1 go: downloading gopkg.in/yaml.v3 v3.0.1 go: downloading github.com/davecgh/go-spew v1.1.1 go: downloading github.com/pmezard/go-difflib v1.0.0 seed: 97315 quick settings: count=5, items=1000, ksize=1024, vsize=1024 00010000000000000000000000000000 panic: test timed out after 10m0s running tests: TestSimulateNoFreeListSync_10000op_10p (11s) goroutine 115960 [running]: testing.(*M).startAlarm.func1() /usr/local/go/src/testing/testing.go:2241 +0x3c5 created by time.goFunc /usr/local/go/src/time/sleep.go:176 +0x32 goroutine 1 [chan receive]: testing.(*T).Run(0xc0001384e0, {0x6529c0?, 0xc00015ba50?}, 0x6738b8) /usr/local/go/src/testing/testing.go:1630 +0x405 testing.runTests.func1(0x816240?) /usr/local/go/src/testing/testing.go:2036 +0x45 testing.tRunner(0xc0001384e0, 0xc00015bb88) /usr/local/go/src/testing/testing.go:1576 +0x10b testing.runTests(0xc000119040?, {0x80fec0, 0xbb, 0xbb}, {0x46768b?, 0xc00015bc00?, 0x815a60?}) /usr/local/go/src/testing/testing.go:2034 +0x489 testing.(*M).Run(0xc000119040) /usr/local/go/src/testing/testing.go:1906 +0x63a go.etcd.io/bbolt_test.TestMain(0xffffffffffffffff?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/quick_test.go:37 +0x359 main.main() _testmain.go:457 +0x1d3 goroutine 99127 [chan send]: go.etcd.io/bbolt_test.testSimulate(0xc000503a00, 0x467ae7?, 0x8, 0x2710, 0xc038d55f60?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:69 +0x35b go.etcd.io/bbolt_test.TestSimulateNoFreeListSync_10000op_10p(0x0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_no_freelist_sync_test.go:34 +0x45 testing.tRunner(0xc000503a00, 0x6738b8) /usr/local/go/src/testing/testing.go:1576 +0x10b created by testing.(*T).Run /usr/local/go/src/testing/testing.go:1629 +0x3ea goroutine 115946 [runnable]: go.etcd.io/bbolt_test.testSimulate.func2() /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:85 runtime.goexit() /usr/local/go/src/runtime/asm_amd64.s:1598 +0x1 created by go.etcd.io/bbolt_test.testSimulate /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:85 +0x579 goroutine 115805 [runnable]: go.etcd.io/bbolt.(*DB).page(...) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/db.go:1054 go.etcd.io/bbolt.(*Tx).page(0x4166f0, 0xc000059998) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/tx.go:533 +0x61 go.etcd.io/bbolt.(*Bucket).pageNode(0xc000059d50?, 0xc00d497800?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/bucket.go:740 +0x8d go.etcd.io/bbolt.(*Cursor).search(0xc000059d50, {0xc028d700d0, 0xcd, 0xd0}, 0xc000300000?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:272 +0x54 go.etcd.io/bbolt.(*Cursor).searchPage(0xc000059d50, {0xc028d700d0, 0xcd, 0xd0}, 0x621de0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:332 +0x166 go.etcd.io/bbolt.(*Cursor).search(0xc000059d50, {0xc028d700d0, 0xcd, 0xd0}, 0xc000300000?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:289 +0x1db go.etcd.io/bbolt.(*Cursor).searchPage(0xc000059d50, {0xc028d700d0, 0xcd, 0xd0}, 0x621de0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:332 +0x166 go.etcd.io/bbolt.(*Cursor).search(0xc000059d50, {0xc028d700d0, 0xcd, 0xd0}, 0x5dfa46?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:289 +0x1db go.etcd.io/bbolt.(*Cursor).seek(0xc000059d50, {0xc028d700d0?, 0xc002a73da0?, 0xc000059d50?}) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:159 +0x36 go.etcd.io/bbolt.(*Bucket).Bucket(0xc0322827f8, {0xc028d700d0, 0xcd, 0xd0}) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/bucket.go:105 +0xd8 go.etcd.io/bbolt.(*Tx).Bucket(...) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/tx.go:102 go.etcd.io/bbolt_test.simulateGetHandler(0xc0322827e0, 0xc040423c50?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:168 +0x7a go.etcd.io/bbolt_test.testSimulate.func1(0x0, 0x673a78) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:126 +0x384 created by go.etcd.io/bbolt_test.testSimulate /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:85 +0x579 goroutine 115906 [runnable]: go.etcd.io/bbolt.(*page).fastCheck(0x3109ad000?, 0x604?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/page.go:56 +0x36 go.etcd.io/bbolt.(*Tx).page(0x4166f0?, 0xc02f262858?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/tx.go:534 +0x8a go.etcd.io/bbolt.(*Bucket).pageNode(0xc02f262d50?, 0xc00001c9f0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/bucket.go:740 +0x8d go.etcd.io/bbolt.(*Cursor).search(0xc02f262d50, {0xc03f6e6900, 0x22c, 0x240}, 0xc000480000?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:272 +0x54 go.etcd.io/bbolt.(*Cursor).searchPage(0xc02f262d50, {0xc03f6e6900, 0x22c, 0x240}, 0x621de0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:332 +0x166 go.etcd.io/bbolt.(*Cursor).search(0xc02f262d50, {0xc03f6e6900, 0x22c, 0x240}, 0xc000480000?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:289 +0x1db go.etcd.io/bbolt.(*Cursor).searchPage(0xc02f262d50, {0xc03f6e6900, 0x22c, 0x240}, 0x621de0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:332 +0x166 go.etcd.io/bbolt.(*Cursor).search(0xc02f262d50, {0xc03f6e6900, 0x22c, 0x240}, 0xc000480000?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:289 +0x1db go.etcd.io/bbolt.(*Cursor).searchPage(0xc02f262d50, {0xc03f6e6900, 0x22c, 0x240}, 0x621de0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:332 +0x166 go.etcd.io/bbolt.(*Cursor).search(0xc02f262d50, {0xc03f6e6900, 0x22c, 0x240}, 0x5dfa46?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:289 +0x1db go.etcd.io/bbolt.(*Cursor).seek(0xc02f262d50, {0xc03f6e6900?, 0xc002c16720?, 0xc02f262d50?}) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:159 +0x36 go.etcd.io/bbolt.(*Bucket).Bucket(0xc0017a9c18, {0xc03f6e6900, 0x22c, 0x240}) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/bucket.go:105 +0xd8 go.etcd.io/bbolt.(*Tx).Bucket(...) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/tx.go:102 go.etcd.io/bbolt_test.simulateGetHandler(0xc0017a9c00, 0xc040423c50?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:168 +0x7a go.etcd.io/bbolt_test.testSimulate.func1(0x0, 0x673a78) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:126 +0x384 created by go.etcd.io/bbolt_test.testSimulate /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:85 +0x579 goroutine 115811 [runnable]: go.etcd.io/bbolt.(*page).fastCheck(0x31068d000?, 0x2e4?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/page.go:56 +0x36 go.etcd.io/bbolt.(*Tx).page(0x0?, 0xc01c625718?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/tx.go:534 +0x8a go.etcd.io/bbolt.(*Bucket).pageNode(0xc02e132d80?, 0xc019dfa300?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/bucket.go:740 +0x8d go.etcd.io/bbolt.(*Cursor).search(0xc01c625d50, {0xc0483ee400, 0x383, 0x400}, 0x5ae18a?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:272 +0x54 go.etcd.io/bbolt.(*Cursor).searchPage(0xc01c625d50, {0xc0483ee400, 0x383, 0x400}, 0x100000000840958?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:332 +0x166 go.etcd.io/bbolt.(*Cursor).search(0xc01c625d50, {0xc0483ee400, 0x383, 0x400}, 0xc000300400?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:289 +0x1db go.etcd.io/bbolt.(*Cursor).searchPage(0xc01c625d50, {0xc0483ee400, 0x383, 0x400}, 0x621de0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:332 +0x166 go.etcd.io/bbolt.(*Cursor).search(0xc01c625d50, {0xc0483ee400, 0x383, 0x400}, 0xc000300400?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:289 +0x1db go.etcd.io/bbolt.(*Cursor).searchPage(0xc01c625d50, {0xc0483ee400, 0x383, 0x400}, 0x621de0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:332 +0x166 go.etcd.io/bbolt.(*Cursor).search(0xc01c625d50, {0xc0483ee400, 0x383, 0x400}, 0xc000300400?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:289 +0x1db go.etcd.io/bbolt.(*Cursor).searchPage(0xc01c625d50, {0xc0483ee400, 0x383, 0x400}, 0x621de0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:332 +0x166 go.etcd.io/bbolt.(*Cursor).search(0xc01c625d50, {0xc0483ee400, 0x383, 0x400}, 0x5dfa46?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:289 +0x1db go.etcd.io/bbolt.(*Cursor).seek(0xc01c625d50, {0xc0483ee400?, 0xc002c16720?, 0xc01c625d50?}) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:159 +0x36 go.etcd.io/bbolt.(*Bucket).Bucket(0xc03019cb78, {0xc0483ee400, 0x383, 0x400}) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/bucket.go:105 +0xd8 go.etcd.io/bbolt.(*Tx).Bucket(...) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/tx.go:102 go.etcd.io/bbolt_test.simulateGetHandler(0xc03019cb60, 0xc040423c50?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:168 +0x7a go.etcd.io/bbolt_test.testSimulate.func1(0x0, 0x673a78) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:126 +0x384 created by go.etcd.io/bbolt_test.testSimulate /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:85 +0x579 goroutine 115947 [runnable]: go.etcd.io/bbolt.(*page).fastCheck(0x3109bc000, 0x613) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/page.go:57 +0x7f go.etcd.io/bbolt.(*Tx).page(0x100c002d9a940?, 0x235c00c98?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/tx.go:534 +0x8a go.etcd.io/bbolt.(*Bucket).pageNode(0x10?, 0x0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/bucket.go:740 +0x8d go.etcd.io/bbolt.(*Cursor).search(0xc031cf4d50, {0xc041550600, 0x2e6, 0x300}, 0xc003023920?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:272 +0x54 go.etcd.io/bbolt.(*Cursor).seek(0xc031cf4d50, {0xc041550600?, 0x2?, 0xc0030238f0?}) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:159 +0x36 go.etcd.io/bbolt.(*Bucket).Get(0xc002d9a940, {0xc041550600, 0x2e6, 0x300}) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/bucket.go:260 +0x8c go.etcd.io/bbolt_test.simulateGetHandler(0xc002d99500, 0xc040423c50?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:183 +0x185 go.etcd.io/bbolt_test.testSimulate.func1(0x0, 0x673a78) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:126 +0x384 created by go.etcd.io/bbolt_test.testSimulate /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:85 +0x579 goroutine 115896 [runnable]: go.etcd.io/bbolt.(*page).fastCheck(0x3109ca000?, 0x621?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/page.go:56 +0x36 go.etcd.io/bbolt.(*Tx).page(0x4166f0?, 0xc031cf8998?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/tx.go:534 +0x8a go.etcd.io/bbolt.(*Bucket).pageNode(0xc000500c00?, 0xc02e92f080?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/bucket.go:740 +0x8d go.etcd.io/bbolt.(*Cursor).search(0xc031cf8d50, {0xc031474780, 0x3c, 0x40}, 0xc000500c00?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:272 +0x54 go.etcd.io/bbolt.(*Cursor).searchPage(0xc031cf8d50, {0xc031474780, 0x3c, 0x40}, 0x621de0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:332 +0x166 go.etcd.io/bbolt.(*Cursor).search(0xc031cf8d50, {0xc031474780, 0x3c, 0x40}, 0xc000500c00?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:289 +0x1db go.etcd.io/bbolt.(*Cursor).searchPage(0xc031cf8d50, {0xc031474780, 0x3c, 0x40}, 0x621de0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:332 +0x166 go.etcd.io/bbolt.(*Cursor).search(0xc031cf8d50, {0xc031474780, 0x3c, 0x40}, 0x5dfa46?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:289 +0x1db go.etcd.io/bbolt.(*Cursor).seek(0xc031cf8d50, {0xc031474780?, 0xc002d91950?, 0xc031cf8d50?}) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:159 +0x36 go.etcd.io/bbolt.(*Bucket).Bucket(0xc032410478, {0xc031474780, 0x3c, 0x40}) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/bucket.go:105 +0xd8 go.etcd.io/bbolt.(*Tx).Bucket(...) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/tx.go:102 go.etcd.io/bbolt_test.simulateGetHandler(0xc032410460, 0xc040423c50?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:168 +0x7a go.etcd.io/bbolt_test.testSimulate.func1(0x0, 0x673a78) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:126 +0x384 created by go.etcd.io/bbolt_test.testSimulate /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:85 +0x579 goroutine 115880 [runnable]: go.etcd.io/bbolt.(*DB).page(...) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/db.go:1054 go.etcd.io/bbolt.(*Tx).page(0x4166f0, 0xc00005f998) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/tx.go:533 +0x61 go.etcd.io/bbolt.(*Bucket).pageNode(0xc00004e800?, 0xc0003b4a80?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/bucket.go:740 +0x8d go.etcd.io/bbolt.(*Cursor).search(0xc00005fd50, {0xc042d0cc00, 0x3c8, 0x400}, 0xc00004e800?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:272 +0x54 go.etcd.io/bbolt.(*Cursor).searchPage(0xc00005fd50, {0xc042d0cc00, 0x3c8, 0x400}, 0x621de0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:332 +0x166 go.etcd.io/bbolt.(*Cursor).search(0xc00005fd50, {0xc042d0cc00, 0x3c8, 0x400}, 0xc00004e800?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:289 +0x1db go.etcd.io/bbolt.(*Cursor).searchPage(0xc00005fd50, {0xc042d0cc00, 0x3c8, 0x400}, 0x621de0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:332 +0x166 go.etcd.io/bbolt.(*Cursor).search(0xc00005fd50, {0xc042d0cc00, 0x3c8, 0x400}, 0x5dfa46?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:289 +0x1db go.etcd.io/bbolt.(*Cursor).seek(0xc00005fd50, {0xc042d0cc00?, 0xc002a202a0?, 0xc00005fd50?}) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:159 +0x36 go.etcd.io/bbolt.(*Bucket).Bucket(0xc031cfda58, {0xc042d0cc00, 0x3c8, 0x400}) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/bucket.go:105 +0xd8 go.etcd.io/bbolt.(*Tx).Bucket(...) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/tx.go:102 go.etcd.io/bbolt_test.simulateGetHandler(0xc031cfda40, 0xc040423c50?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:168 +0x7a go.etcd.io/bbolt_test.testSimulate.func1(0x0, 0x673a78) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:126 +0x384 created by go.etcd.io/bbolt_test.testSimulate /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:85 +0x579 goroutine 115959 [runnable]: go.etcd.io/bbolt.(*page).fastCheck(0x310a08000?, 0x65f?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/page.go:56 +0x36 go.etcd.io/bbolt.(*Tx).page(0x4166f0?, 0xc03240a858?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/tx.go:534 +0x8a go.etcd.io/bbolt.(*Bucket).pageNode(0xc03240ad50?, 0xc040d7bc00?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/bucket.go:740 +0x8d go.etcd.io/bbolt.(*Cursor).search(0xc03240ad50, {0xc019110ea0, 0x187, 0x1a0}, 0xc00004ec00?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:272 +0x54 go.etcd.io/bbolt.(*Cursor).searchPage(0xc03240ad50, {0xc019110ea0, 0x187, 0x1a0}, 0x621de0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:332 +0x166 go.etcd.io/bbolt.(*Cursor).search(0xc03240ad50, {0xc019110ea0, 0x187, 0x1a0}, 0xc00004ec00?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:289 +0x1db go.etcd.io/bbolt.(*Cursor).searchPage(0xc03240ad50, {0xc019110ea0, 0x187, 0x1a0}, 0x621de0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:332 +0x166 go.etcd.io/bbolt.(*Cursor).search(0xc03240ad50, {0xc019110ea0, 0x187, 0x1a0}, 0xc00004ec00?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:289 +0x1db go.etcd.io/bbolt.(*Cursor).searchPage(0xc03240ad50, {0xc019110ea0, 0x187, 0x1a0}, 0x621de0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:332 +0x166 go.etcd.io/bbolt.(*Cursor).search(0xc03240ad50, {0xc019110ea0, 0x187, 0x1a0}, 0x5dfa46?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:289 +0x1db go.etcd.io/bbolt.(*Cursor).seek(0xc03240ad50, {0xc019110ea0?, 0xc002f803c0?, 0xc03240ad50?}) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:159 +0x36 go.etcd.io/bbolt.(*Bucket).Bucket(0xc02fba4d38, {0xc019110ea0, 0x187, 0x1a0}) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/bucket.go:105 +0xd8 go.etcd.io/bbolt.(*Tx).Bucket(...) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/tx.go:102 go.etcd.io/bbolt_test.simulateGetHandler(0xc02fba4d20, 0xc040423c50?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:168 +0x7a go.etcd.io/bbolt_test.testSimulate.func1(0x0, 0x673a78) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:126 +0x384 created by go.etcd.io/bbolt_test.testSimulate /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:85 +0x579 goroutine 115803 [runnable]: go.etcd.io/bbolt.(*page).fastCheck(0x310950000?, 0x5a7?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/page.go:56 +0x36 go.etcd.io/bbolt.(*Tx).page(0x4166f0?, 0xc01c621998?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/tx.go:534 +0x8a go.etcd.io/bbolt.(*Bucket).pageNode(0xc01c621d50?, 0xc02fa58a00?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/bucket.go:740 +0x8d go.etcd.io/bbolt.(*Cursor).search(0xc01c621d50, {0xc02fa6dc00, 0x31e, 0x380}, 0xc000400400?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:272 +0x54 go.etcd.io/bbolt.(*Cursor).searchPage(0xc01c621d50, {0xc02fa6dc00, 0x31e, 0x380}, 0x621de0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:332 +0x166 go.etcd.io/bbolt.(*Cursor).search(0xc01c621d50, {0xc02fa6dc00, 0x31e, 0x380}, 0xc000400400?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:289 +0x1db go.etcd.io/bbolt.(*Cursor).searchPage(0xc01c621d50, {0xc02fa6dc00, 0x31e, 0x380}, 0x621de0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:332 +0x166 go.etcd.io/bbolt.(*Cursor).search(0xc01c621d50, {0xc02fa6dc00, 0x31e, 0x380}, 0x5dfa46?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:289 +0x1db go.etcd.io/bbolt.(*Cursor).seek(0xc01c621d50, {0xc02fa6dc00?, 0xc002a202a0?, 0xc01c621d50?}) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:159 +0x36 go.etcd.io/bbolt.(*Bucket).Bucket(0xc032282638, {0xc02fa6dc00, 0x31e, 0x380}) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/bucket.go:105 +0xd8 go.etcd.io/bbolt.(*Tx).Bucket(...) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/tx.go:102 go.etcd.io/bbolt_test.simulateGetHandler(0xc032282620, 0xc040423c50?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:168 +0x7a go.etcd.io/bbolt_test.testSimulate.func1(0x0, 0x673a78) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:126 +0x384 created by go.etcd.io/bbolt_test.testSimulate /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:85 +0x579 goroutine 115729 [runnable]: go.etcd.io/bbolt.(*page).fastCheck(0x31075e000?, 0x3b5?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/page.go:56 +0x36 go.etcd.io/bbolt.(*Tx).page(0x4166f0?, 0xc02f263858?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/tx.go:534 +0x8a go.etcd.io/bbolt.(*Bucket).pageNode(0xc02f263d50?, 0xc0025ee300?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/bucket.go:740 +0x8d go.etcd.io/bbolt.(*Cursor).search(0xc02f263d50, {0xc005f94400, 0x3be, 0x400}, 0xc00004f400?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:272 +0x54 go.etcd.io/bbolt.(*Cursor).searchPage(0xc02f263d50, {0xc005f94400, 0x3be, 0x400}, 0x621de0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:332 +0x166 go.etcd.io/bbolt.(*Cursor).search(0xc02f263d50, {0xc005f94400, 0x3be, 0x400}, 0xc00004f400?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:289 +0x1db go.etcd.io/bbolt.(*Cursor).searchPage(0xc02f263d50, {0xc005f94400, 0x3be, 0x400}, 0x621de0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:332 +0x166 go.etcd.io/bbolt.(*Cursor).search(0xc02f263d50, {0xc005f94400, 0x3be, 0x400}, 0xc00004f400?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:289 +0x1db go.etcd.io/bbolt.(*Cursor).searchPage(0xc02f263d50, {0xc005f94400, 0x3be, 0x400}, 0x621de0?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:332 +0x166 go.etcd.io/bbolt.(*Cursor).search(0xc02f263d50, {0xc005f94400, 0x3be, 0x400}, 0x5dfa46?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:289 +0x1db go.etcd.io/bbolt.(*Cursor).seek(0xc02f263d50, {0xc005f94400?, 0xc002c78150?, 0xc02f263d50?}) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/cursor.go:159 +0x36 go.etcd.io/bbolt.(*Bucket).Bucket(0xc02f266638, {0xc005f94400, 0x3be, 0x400}) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/bucket.go:105 +0xd8 go.etcd.io/bbolt.(*Tx).Bucket(...) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/tx.go:102 go.etcd.io/bbolt_test.simulateGetHandler(0xc02f266620, 0xc040423c50?) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:168 +0x7a go.etcd.io/bbolt_test.testSimulate.func1(0x0, 0x673a78) /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:126 +0x384 created by go.etcd.io/bbolt_test.testSimulate /usr/obj/ports/bbolt-1.3.7/go.etcd.io/bbolt@v1.3.7/simulation_test.go:85 +0x579 FAIL go.etcd.io/bbolt 600.662s FAIL