Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LMDB: large number of concurrent write and reads can lead to crash. #1

Open
prataprc opened this issue Nov 16, 2017 · 0 comments
Open

Comments

@prataprc
Copy link
Member

prataprc commented Nov 16, 2017

./dbperf -db lmdb -klen 32 -vlen 32 -load 100000 -inserts 1000000 -upserts 1000000 -deletes 1000000 -gets 10000000 -ranges 100000000 -cpu 8

Can lead to crash with version a3998cb

mdb.c:5790: Assertion 'IS_BRANCH(mc->mc_pg[mc->mc_top])' failed in mdb_cursor_sibling()
SIGABRT: abort
PC=0x7fff7ae93fce m=9 sigcode=0
signal arrived during cgo execution

goroutine 50 [syscall, locked to thread]:
runtime.cgocall(0x437ea70, 0xc4202f9b78, 0x4473d4d)
/usr/local/Cellar/go/1.9/libexec/src/runtime/cgocall.go:132 +0xe4 fp=0xc4202f9b38 sp=0xc4202f9af8 pc=0x4003fd4
github.com/bmatsuo/lmdb-go/lmdb._Cfunc_mdb_cursor_get(0x4c00f00, 0xc4206d7680, 0xc4206d7690, 0x8, 0x0)
github.com/bmatsuo/lmdb-go/lmdb/_obj/_cgo_gotypes.go:451 +0x4d fp=0xc4202f9b78 sp=0xc4202f9b38 pc=0x41893ad
github.com/bmatsuo/lmdb-go/lmdb.(*Cursor).getVal0.func1(0x4c00f00, 0xc4206d7680, 0xc4206d7690, 0xc400000008, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/cursor.go:191 +0xea fp=0xc4202f9bb0 sp=0xc4202f9b78 pc=0x4193efa
github.com/bmatsuo/lmdb-go/lmdb.(*Cursor).getVal0(0xc4206d76b0, 0x8, 0xc4207508a0, 0x20)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/cursor.go:191 +0x51 fp=0xc4202f9c00 sp=0xc4202f9bb0 pc=0x418bac1
github.com/bmatsuo/lmdb-go/lmdb.(*Cursor).Get(0xc4206d76b0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0xc420750880, 0x20, ...)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/cursor.go:149 +0x4b4 fp=0xc4202f9cb0 sp=0xc4202f9c00 pc=0x418ba54
main.lmdbRanger.func2(0xc42043b280, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:377 +0x17b fp=0xc4202f9d88 sp=0xc4202f9cb0 pc=0x437da9b
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).runOpTerm(0xc42043b280, 0xc4202f9f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:158 +0x7c fp=0xc4202f9db0 sp=0xc4202f9d88 pc=0x4190fdc
github.com/bmatsuo/lmdb-go/lmdb.(*Env).run(0xc420128600, 0x0, 0x20000, 0xc4202f9f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:511 +0x129 fp=0xc4202f9df8 sp=0xc4202f9db0 pc=0x4190429
github.com/bmatsuo/lmdb-go/lmdb.(*Env).View(0xc420128600, 0xc4202f9f20, 0x20, 0x625da)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:451 +0x43 fp=0xc4202f9e38 sp=0xc4202f9df8 pc=0x41901f3
main.lmdbRanger(0xc42027e080, 0x3a, 0x186a0, 0x0, 0x64, 0xc42013e0c0, 0xc420138100)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:385 +0x316 fp=0xc4202f9fa8 sp=0xc4202f9e38 pc=0x4373f76
runtime.goexit()
/usr/local/Cellar/go/1.9/libexec/src/runtime/asm_amd64.s:2337 +0x1 fp=0xc4202f9fb0 sp=0xc4202f9fa8 pc=0x405d841
created by main.perflmdb
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:54 +0x492

goroutine 1 [semacquire, 2 minutes]:
sync.runtime_Semacquire(0xc42013810c)
/usr/local/Cellar/go/1.9/libexec/src/runtime/sema.go:56 +0x39
sync.(*WaitGroup).Wait(0xc420138100)
/usr/local/Cellar/go/1.9/libexec/src/sync/waitgroup.go:131 +0x72
main.perflmdb(0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:58 +0x4ea
main.main()
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/main.go:68 +0x314

goroutine 18 [IO wait, 2 minutes]:
internal/poll.runtime_pollWait(0x4bacdf0, 0x72, 0xffffffffffffffff)
/usr/local/Cellar/go/1.9/libexec/src/runtime/netpoll.go:173 +0x57
internal/poll.(*pollDesc).wait(0xc420124098, 0x72, 0x0, 0x0, 0x0)
/usr/local/Cellar/go/1.9/libexec/src/internal/poll/fd_poll_runtime.go:85 +0xae
internal/poll.(*pollDesc).waitRead(0xc420124098, 0xffffffffffffff00, 0x0, 0x0)
/usr/local/Cellar/go/1.9/libexec/src/internal/poll/fd_poll_runtime.go:90 +0x3d
internal/poll.(*FD).Accept(0xc420124080, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/Cellar/go/1.9/libexec/src/internal/poll/fd_unix.go:334 +0x1e2
net.(*netFD).accept(0xc420124080, 0x4b08000, 0x0, 0x447ec68)
/usr/local/Cellar/go/1.9/libexec/src/net/fd_unix.go:238 +0x42
net.(*TCPListener).accept(0xc42000e058, 0xc420045e08, 0x4013838, 0x30)
/usr/local/Cellar/go/1.9/libexec/src/net/tcpsock_posix.go:136 +0x2e
net.(*TCPListener).AcceptTCP(0xc42000e058, 0xc42007f860, 0xc42007f860, 0x43eaaa0)
/usr/local/Cellar/go/1.9/libexec/src/net/tcpsock.go:234 +0x49
net/http.tcpKeepAliveListener.Accept(0xc42000e058, 0xc42001e148, 0x43eaaa0, 0x46937e0, 0x4452760)
/usr/local/Cellar/go/1.9/libexec/src/net/http/server.go:3120 +0x2f
net/http.(*Server).Serve(0xc4200831e0, 0x4667580, 0xc42000e058, 0x0, 0x0)
/usr/local/Cellar/go/1.9/libexec/src/net/http/server.go:2695 +0x1b2
net/http.(*Server).ListenAndServe(0xc4200831e0, 0xc4200831e0, 0x0)
/usr/local/Cellar/go/1.9/libexec/src/net/http/server.go:2636 +0xa9
net/http.ListenAndServe(0x4467bba, 0xe, 0x0, 0x0, 0x0, 0x0)
/usr/local/Cellar/go/1.9/libexec/src/net/http/server.go:2882 +0x7f
main.main.func1()
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/main.go:47 +0x4c
created by main.main
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/main.go:46 +0x82

goroutine 19 [sleep]:
time.Sleep(0x5f5e100)
/usr/local/Cellar/go/1.9/libexec/src/runtime/time.go:65 +0x130
runtime/pprof.profileWriter(0x4662e80, 0xc420134020)
/usr/local/Cellar/go/1.9/libexec/src/runtime/pprof/pprof.go:708 +0x6d
created by runtime/pprof.StartCPUProfile
/usr/local/Cellar/go/1.9/libexec/src/runtime/pprof/pprof.go:693 +0x122

goroutine 20 [runnable, locked to thread]:
github.com/bmatsuo/lmdb-go/lmdb._Cfunc_lmdbgo_mdb_put2(0x5007c00, 0x2, 0xc4202e2000, 0x20, 0xc4202e2020, 0x20, 0xc400000000, 0xc400000000)
github.com/bmatsuo/lmdb-go/lmdb/_obj/_cgo_gotypes.go:364 +0x50
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).Put.func1(0x5007c00, 0x2, 0xc4202e2000, 0x20, 0xc4202e2020, 0x20, 0x0, 0xc420312f58)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:447 +0x9f
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).Put(0xc420617480, 0xc400000002, 0xc4202e2000, 0x20, 0x20, 0xc4202e2020, 0x20, 0x20, 0x0, 0xc420040bc0, ...)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:447 +0x96
main.lmdbWriter.func1(0xc420617480, 0x447dff0, 0xc420617480)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:212 +0x7b
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).runOpTerm(0xc420617480, 0xc4202ce040, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:158 +0x7c
github.com/bmatsuo/lmdb-go/lmdb.(*Env).run(0xc420128450, 0xc4202ce001, 0x0, 0xc4202ce040, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:511 +0x129
github.com/bmatsuo/lmdb-go/lmdb.(*Env).Update(0xc420128450, 0xc4202ce040, 0x20, 0xc4202e2020)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:478 +0x43
main.lmdbWriter(0xc420128450, 0x2, 0x186a0, 0x64, 0xc42013e0c0, 0xc420138100)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:239 +0xcfe
created by main.perflmdb
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:43 +0x6ea

goroutine 21 [runnable, locked to thread]:
github.com/bmatsuo/lmdb-go/lmdb._Cfunc_mdb_txn_commit(0x5005c00, 0x0)
github.com/bmatsuo/lmdb-go/lmdb/_obj/_cgo_gotypes.go:895 +0x49
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).commit.func1(0x5005c00, 0xc420541b80)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:193 +0x60
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).commit(0xc42064e000, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:193 +0x33
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).runOpTerm(0xc42064e000, 0xc420041f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:163 +0xb3
github.com/bmatsuo/lmdb-go/lmdb.(*Env).run(0xc42027a0c0, 0x0, 0x20000, 0xc420041f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:511 +0x129
github.com/bmatsuo/lmdb-go/lmdb.(*Env).View(0xc42027a0c0, 0xc420041f20, 0x20, 0x6269d)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:451 +0x43
main.lmdbGetter(0xc42027e080, 0x3a, 0x186a0, 0x0, 0x64, 0xc42013e0c0, 0xc420138100)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:325 +0x316
created by main.perflmdb
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:48 +0x3c9

goroutine 22 [runnable, locked to thread]:
github.com/bmatsuo/lmdb-go/lmdb._Cfunc_lmdbgo_mdb_get(0x6288000, 0xc400000002, 0xc4203d2fe0, 0x20, 0xc420753260, 0xc400000000)
github.com/bmatsuo/lmdb-go/lmdb/_obj/_cgo_gotypes.go:329 +0x4d
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).Get.func1(0x6288000, 0x2, 0xc4203d2fe0, 0x20, 0xc420753260, 0xc4202f8cd8)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:413 +0xbf
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).Get(0xc42064fd80, 0xc400000002, 0xc4203d2fe0, 0x20, 0x20, 0x447dff0, 0x4f00340, 0x4190fc1, 0xc4202f8d88, 0xc4202f8d90)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:413 +0x7e
main.lmdbGetter.func2(0xc42064fd80, 0x447dff0, 0xc42064fd80)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:315 +0x6a
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).runOpTerm(0xc42064fd80, 0xc4202f8f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:158 +0x7c
github.com/bmatsuo/lmdb-go/lmdb.(*Env).run(0xc4201285d0, 0x0, 0x20000, 0xc4202f8f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:511 +0x129
github.com/bmatsuo/lmdb-go/lmdb.(*Env).View(0xc4201285d0, 0xc4202f8f20, 0x20, 0x626d4)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:451 +0x43
main.lmdbGetter(0xc42027e080, 0x3a, 0x186a0, 0x0, 0x64, 0xc42013e0c0, 0xc420138100)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:325 +0x316
created by main.perflmdb
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:48 +0x3c9

goroutine 23 [runnable, locked to thread]:
github.com/bmatsuo/lmdb-go/lmdb._Cfunc_mdb_txn_begin(0x4a00810, 0x0, 0xc400020000, 0xc4203be318, 0x0)
github.com/bmatsuo/lmdb-go/lmdb/_obj/_cgo_gotypes.go:879 +0x4d
github.com/bmatsuo/lmdb-go/lmdb.beginTxn.func1(0x4a00810, 0x0, 0xc400020000, 0xc4203be318, 0x13)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:99 +0x12a
github.com/bmatsuo/lmdb-go/lmdb.beginTxn(0xc420128510, 0x0, 0x20000, 0xc42009ec00, 0x13, 0x564cd902f8047819)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:99 +0xd0
github.com/bmatsuo/lmdb-go/lmdb.(*Env).run(0xc420128510, 0x0, 0x20000, 0xc4202c6f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:507 +0xe8
github.com/bmatsuo/lmdb-go/lmdb.(*Env).View(0xc420128510, 0xc4202c6f20, 0x20, 0x626d3)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:451 +0x43
main.lmdbGetter(0xc42027e080, 0x3a, 0x186a0, 0x0, 0x64, 0xc42013e0c0, 0xc420138100)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:325 +0x316
created by main.perflmdb
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:48 +0x3c9

goroutine 24 [runnable, locked to thread]:
github.com/bmatsuo/lmdb-go/lmdb._Cfunc_mdb_txn_begin(0x68000f0, 0x0, 0xc400020000, 0xc4203edf18, 0x0)
github.com/bmatsuo/lmdb-go/lmdb/_obj/_cgo_gotypes.go:879 +0x4d
github.com/bmatsuo/lmdb-go/lmdb.beginTxn.func1(0x68000f0, 0x0, 0xc400020000, 0xc4203edf18, 0x13)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:99 +0x12a
github.com/bmatsuo/lmdb-go/lmdb.beginTxn(0xc420128540, 0x0, 0x20000, 0xc4202d0c00, 0x13, 0x7a2b346ed8bd8949)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:99 +0xd0
github.com/bmatsuo/lmdb-go/lmdb.(*Env).run(0xc420128540, 0x0, 0x20000, 0xc4202c7f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:507 +0xe8
github.com/bmatsuo/lmdb-go/lmdb.(*Env).View(0xc420128540, 0xc4202c7f20, 0x20, 0x626d3)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:451 +0x43
main.lmdbGetter(0xc42027e080, 0x3a, 0x186a0, 0x0, 0x64, 0xc42013e0c0, 0xc420138100)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:325 +0x316
created by main.perflmdb
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:48 +0x3c9

goroutine 25 [runnable, locked to thread]:
github.com/bmatsuo/lmdb-go/lmdb._Cfunc_mdb_txn_begin(0x490c350, 0x0, 0xc400020000, 0xc420645018, 0x0)
github.com/bmatsuo/lmdb-go/lmdb/_obj/_cgo_gotypes.go:879 +0x4d
github.com/bmatsuo/lmdb-go/lmdb.beginTxn.func1(0x490c350, 0x0, 0xc400020000, 0xc420645018, 0x6)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:99 +0x12a
github.com/bmatsuo/lmdb-go/lmdb.beginTxn(0xc4201286c0, 0x0, 0x20000, 0xc4202d1800, 0x6, 0x47662)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:99 +0xd0
github.com/bmatsuo/lmdb-go/lmdb.(*Env).run(0xc4201286c0, 0x0, 0x20000, 0xc4202f5f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:507 +0xe8
github.com/bmatsuo/lmdb-go/lmdb.(*Env).View(0xc4201286c0, 0xc4202f5f20, 0x20, 0x6269d)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:451 +0x43
main.lmdbGetter(0xc42027e080, 0x3a, 0x186a0, 0x0, 0x64, 0xc42013e0c0, 0xc420138100)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:325 +0x316
created by main.perflmdb
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:48 +0x3c9

goroutine 26 [runnable]:
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).abort(0xc42062a540)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:211 +0xdd
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).runOpTerm(0xc42062a540, 0xc420326f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:163 +0xc8
github.com/bmatsuo/lmdb-go/lmdb.(*Env).run(0xc420128750, 0x0, 0x20000, 0xc420326f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:511 +0x129
github.com/bmatsuo/lmdb-go/lmdb.(*Env).View(0xc420128750, 0xc420326f20, 0x20, 0x62644)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:451 +0x43
main.lmdbGetter(0xc42027e080, 0x3a, 0x186a0, 0x0, 0x64, 0xc42013e0c0, 0xc420138100)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:325 +0x316
created by main.perflmdb
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:48 +0x3c9

goroutine 27 [runnable, locked to thread]:
github.com/bmatsuo/lmdb-go/lmdb._Cfunc_lmdbgo_mdb_get(0x7a3a600, 0xc400000002, 0xc420546000, 0x20, 0xc4206bc7d0, 0x0)
github.com/bmatsuo/lmdb-go/lmdb/_obj/_cgo_gotypes.go:329 +0x4d
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).Get.func1(0x7a3a600, 0x2, 0xc420546000, 0x20, 0xc4206bc7d0, 0x418ab1d)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:413 +0xbf
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).Get(0xc42013b380, 0xc400000002, 0xc420546000, 0x20, 0x20, 0xc4204c6000, 0x4c00df0, 0x4190fc1, 0xc420327d88, 0xc420327d90)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:413 +0x7e
main.lmdbGetter.func2(0xc42013b380, 0x447dff0, 0xc42013b380)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:315 +0x6a
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).runOpTerm(0xc42013b380, 0xc420327f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:158 +0x7c
github.com/bmatsuo/lmdb-go/lmdb.(*Env).run(0xc420128780, 0x0, 0x20000, 0xc420327f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:511 +0x129
github.com/bmatsuo/lmdb-go/lmdb.(*Env).View(0xc420128780, 0xc420327f20, 0x20, 0x626d3)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:451 +0x43
main.lmdbGetter(0xc42027e080, 0x3a, 0x186a0, 0x0, 0x64, 0xc42013e0c0, 0xc420138100)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:325 +0x316
created by main.perflmdb
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:48 +0x3c9

goroutine 28 [runnable, locked to thread]:
github.com/bmatsuo/lmdb-go/lmdb._Cfunc_mdb_txn_begin(0x4a01a30, 0x0, 0xc400020000, 0xc42062c458, 0x0)
github.com/bmatsuo/lmdb-go/lmdb/_obj/_cgo_gotypes.go:879 +0x4d
github.com/bmatsuo/lmdb-go/lmdb.beginTxn.func1(0x4a01a30, 0x0, 0xc400020000, 0xc42062c458, 0x13)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:99 +0x12a
github.com/bmatsuo/lmdb-go/lmdb.beginTxn(0xc420128720, 0x0, 0x20000, 0xc42009f000, 0x13, 0x67cf8de670a544e1)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:99 +0xd0
github.com/bmatsuo/lmdb-go/lmdb.(*Env).run(0xc420128720, 0x0, 0x20000, 0xc4202f7f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:507 +0xe8
github.com/bmatsuo/lmdb-go/lmdb.(*Env).View(0xc420128720, 0xc4202f7f20, 0x20, 0x62644)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:451 +0x43
main.lmdbGetter(0xc42027e080, 0x3a, 0x186a0, 0x0, 0x64, 0xc42013e0c0, 0xc420138100)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:325 +0x316
created by main.perflmdb
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:48 +0x3c9

goroutine 29 [runnable, locked to thread]:
github.com/bmatsuo/lmdb-go/lmdb._Cfunc_mdb_txn_commit(0x881d200, 0x0)
github.com/bmatsuo/lmdb-go/lmdb/_obj/_cgo_gotypes.go:895 +0x49
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).commit.func1(0x881d200, 0xc420529a00)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:193 +0x60
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).commit(0xc4202bd6c0, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:193 +0x33
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).runOpTerm(0xc4202bd6c0, 0xc4202faf20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:163 +0xb3
github.com/bmatsuo/lmdb-go/lmdb.(*Env).run(0xc420128630, 0x0, 0x20000, 0xc4202faf20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:511 +0x129
github.com/bmatsuo/lmdb-go/lmdb.(*Env).View(0xc420128630, 0xc4202faf20, 0x20, 0x625ed)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:451 +0x43
main.lmdbRanger(0xc42027e080, 0x3a, 0x186a0, 0x0, 0x64, 0xc42013e0c0, 0xc420138100)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:385 +0x316
created by main.perflmdb
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:54 +0x492

goroutine 30 [runnable]:
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).bytes(0xc420306280, 0xc420378470, 0xc4203ea020, 0x20, 0x20)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:399 +0xa0
github.com/bmatsuo/lmdb-go/lmdb.(*Cursor).Get(0xc420378490, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0xc4203e7fe0, 0x20, ...)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/cursor.go:176 +0x22a
main.lmdbRanger.func2(0xc420306280, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:377 +0x17b
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).runOpTerm(0xc420306280, 0xc4202f4f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:158 +0x7c
github.com/bmatsuo/lmdb-go/lmdb.(*Env).run(0xc420128690, 0x0, 0x20000, 0xc4202f4f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:511 +0x129
github.com/bmatsuo/lmdb-go/lmdb.(*Env).View(0xc420128690, 0xc4202f4f20, 0x20, 0x626d3)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:451 +0x43
main.lmdbRanger(0xc42027e080, 0x3a, 0x186a0, 0x0, 0x64, 0xc42013e0c0, 0xc420138100)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:385 +0x316
created by main.perflmdb
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:54 +0x492

goroutine 31 [runnable]:
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).bytes(0xc42013b3c0, 0xc4206bc7f0, 0x0, 0x0, 0x20)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:399 +0xa0
github.com/bmatsuo/lmdb-go/lmdb.(*Cursor).Get(0xc4206bc820, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0xc420309200, 0x20, ...)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/cursor.go:174 +0x40f
main.lmdbRanger.func2(0xc42013b3c0, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:377 +0x17b
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).runOpTerm(0xc42013b3c0, 0xc420042f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:158 +0x7c
github.com/bmatsuo/lmdb-go/lmdb.(*Env).run(0xc42027a120, 0x0, 0x20000, 0xc420042f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:511 +0x129
github.com/bmatsuo/lmdb-go/lmdb.(*Env).View(0xc42027a120, 0xc420042f20, 0x20, 0x626d3)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:451 +0x43
main.lmdbRanger(0xc42027e080, 0x3a, 0x186a0, 0x0, 0x64, 0xc42013e0c0, 0xc420138100)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:385 +0x316
created by main.perflmdb
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:54 +0x492

goroutine 32 [runnable, locked to thread]:
github.com/bmatsuo/lmdb-go/lmdb._Cfunc_mdb_cursor_get(0x490cd00, 0xc42066cef0, 0xc42066cf00, 0x8, 0x0)
github.com/bmatsuo/lmdb-go/lmdb/_obj/_cgo_gotypes.go:451 +0x4d
github.com/bmatsuo/lmdb-go/lmdb.(*Cursor).getVal0.func1(0x490cd00, 0xc42066cef0, 0xc42066cf00, 0xc400000008, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/cursor.go:191 +0xea
github.com/bmatsuo/lmdb-go/lmdb.(*Cursor).getVal0(0xc42066cf20, 0x8, 0xc420763ba0, 0x20)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/cursor.go:191 +0x51
github.com/bmatsuo/lmdb-go/lmdb.(*Cursor).Get(0xc42066cf20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0xc420763b80, 0x20, ...)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/cursor.go:149 +0x4b4
main.lmdbRanger.func2(0xc4203be340, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:377 +0x17b
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).runOpTerm(0xc4203be340, 0xc4202c8f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:158 +0x7c
github.com/bmatsuo/lmdb-go/lmdb.(*Env).run(0xc420128570, 0x0, 0x20000, 0xc4202c8f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:511 +0x129
github.com/bmatsuo/lmdb-go/lmdb.(*Env).View(0xc420128570, 0xc4202c8f20, 0x20, 0x626d4)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:451 +0x43
main.lmdbRanger(0xc42027e080, 0x3a, 0x186a0, 0x0, 0x64, 0xc42013e0c0, 0xc420138100)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:385 +0x316
created by main.perflmdb
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:54 +0x492

goroutine 33 [runnable]:
github.com/bmatsuo/lmdb-go/lmdb._Cfunc_GoBytes(0xe0ceefe10, 0xe00000020, 0x0, 0x0, 0x0)
github.com/bmatsuo/lmdb-go/lmdb/_obj/_cgo_gotypes.go:186 +0x37
github.com/bmatsuo/lmdb-go/lmdb.getBytesCopy.func1(0xe0ceefe10, 0xc400000020, 0x418bac1, 0x4a02190, 0xc420817190)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/val.go:120 +0x6c
github.com/bmatsuo/lmdb-go/lmdb.getBytesCopy(0xc420817190, 0xc42083eb40, 0x20, 0x20)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/val.go:120 +0x36
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).bytes(0xc42052e580, 0xc420817190, 0x0, 0x0, 0x20)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:403 +0x6c
github.com/bmatsuo/lmdb-go/lmdb.(*Cursor).Get(0xc4208171c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0xc42083eb20, 0x20, ...)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/cursor.go:174 +0x40f
main.lmdbRanger.func2(0xc42052e580, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:377 +0x17b
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).runOpTerm(0xc42052e580, 0xc4202c9f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:158 +0x7c
github.com/bmatsuo/lmdb-go/lmdb.(*Env).run(0xc4201285a0, 0x0, 0x20000, 0xc4202c9f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:511 +0x129
github.com/bmatsuo/lmdb-go/lmdb.(*Env).View(0xc4201285a0, 0xc4202c9f20, 0x20, 0x62612)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:451 +0x43
main.lmdbRanger(0xc42027e080, 0x3a, 0x186a0, 0x0, 0x64, 0xc42013e0c0, 0xc420138100)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:385 +0x316
created by main.perflmdb
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:54 +0x492

goroutine 51 [runnable]:
github.com/bmatsuo/lmdb-go/lmdb.(*Cursor).getVal0.func1(0x6800470, 0xc4206d7500, 0xc4206d7510, 0xc400000008, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/cursor.go:191 +0x56
github.com/bmatsuo/lmdb-go/lmdb.(*Cursor).getVal0(0xc4206d7530, 0x8, 0xc42030a2a0, 0x20)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/cursor.go:191 +0x51
github.com/bmatsuo/lmdb-go/lmdb.(*Cursor).Get(0xc4206d7530, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0xc42030a280, 0x20, ...)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/cursor.go:149 +0x4b4
main.lmdbRanger.func2(0xc420616940, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:377 +0x17b
github.com/bmatsuo/lmdb-go/lmdb.(*Txn).runOpTerm(0xc420616940, 0xc4202fbf20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:158 +0x7c
github.com/bmatsuo/lmdb-go/lmdb.(*Env).run(0xc420128660, 0x0, 0x20000, 0xc4202fbf20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:511 +0x129
github.com/bmatsuo/lmdb-go/lmdb.(*Env).View(0xc420128660, 0xc4202fbf20, 0x20, 0x62644)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:451 +0x43
main.lmdbRanger(0xc42027e080, 0x3a, 0x186a0, 0x0, 0x64, 0xc42013e0c0, 0xc420138100)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:385 +0x316
created by main.perflmdb
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:54 +0x492

goroutine 52 [runnable, locked to thread]:
github.com/bmatsuo/lmdb-go/lmdb._Cfunc_mdb_txn_begin(0x4c00a70, 0x0, 0xc400020000, 0xc42064fc58, 0x0)
github.com/bmatsuo/lmdb-go/lmdb/_obj/_cgo_gotypes.go:879 +0x4d
github.com/bmatsuo/lmdb-go/lmdb.beginTxn.func1(0x4c00a70, 0x0, 0xc400020000, 0xc42064fc58, 0x13)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:99 +0x12a
github.com/bmatsuo/lmdb-go/lmdb.beginTxn(0xc4201286f0, 0x0, 0x20000, 0xc42028d800, 0x13, 0x5a4a6d6a1fd12469)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/txn.go:99 +0xd0
github.com/bmatsuo/lmdb-go/lmdb.(*Env).run(0xc4201286f0, 0x0, 0x20000, 0xc4202f6f20, 0x0, 0x0)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:507 +0xe8
github.com/bmatsuo/lmdb-go/lmdb.(*Env).View(0xc4201286f0, 0xc4202f6f20, 0x20, 0x626d3)
/Users/prataprc/myworld/devgo/src/github.com/bmatsuo/lmdb-go/lmdb/env.go:451 +0x43
main.lmdbRanger(0xc42027e080, 0x3a, 0x186a0, 0x0, 0x64, 0xc42013e0c0, 0xc420138100)
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:385 +0x316
created by main.perflmdb
/Users/prataprc/myworld/devgo/src/github.com/bnclabs/dbperf/lmdb.go:54 +0x492

rax 0x0
rbx 0x700006cc0000
rcx 0x700006cbfb18
rdx 0x0
rdi 0x2703
rsi 0x6
rbp 0x700006cbfb50
rsp 0x700006cbfb18
r8 0x7fffb404a048
r9 0x40
r10 0x0
r11 0x206
r12 0x2703
r13 0x4c00f00
r14 0x6
r15 0x2d
rip 0x7fff7ae93fce
rflags 0x206
cs 0x7
fs 0x0
gs 0x0

@prataprc prataprc changed the title LMDB: large number of concurrent writes and reads can lead to crash. LMDB: large number of concurrent write and reads can lead to crash. Nov 16, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant