Closed yowcow closed 6 years ago
2017/12/07 02:45:52 radixhandler.go:47: radixhandler got a new file to load at './tmp/data.db'
2017/12/07 02:45:52 radixhandler.go:54: radixhandler loading data from 'tmp/data01/data.db'
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x19 pc=0x7f622bf002a6]
runtime stack:
runtime.throw(0x588b7b, 0x2a)
/usr/local/go-1.9.2/src/runtime/panic.go:605 +0x95
runtime.sigpanic()
/usr/local/go-1.9.2/src/runtime/signal_unix.go:351 +0x2b8
goroutine 6 [syscall, locked to thread]:
runtime.cgocall(0x5250d0, 0xc420039ae8, 0x58883f)
/usr/local/go-1.9.2/src/runtime/cgocall.go:132 +0xe4 fp=0xc420039aa8 sp=0xc420039a68 pc=0x4035c4
github.com/yowcow/goromdb/vendor/github.com/ajiyoshi-vg/goberkeleydb/bdb._Cfunc_db_cursor_get(0x7f62240432c0, 0xc436077530, 0xc4360775c0, 0x10, 0x0)
github.com/yowcow/goromdb/vendor/github.com/ajiyoshi-vg/goberkeleydb/bdb/_obj/_cgo_gotypes.go:1042 +0x4d fp=0xc420039ae8 sp=0xc420039aa8 pc=0x50151d
github.com/yowcow/goromdb/vendor/github.com/ajiyoshi-vg/goberkeleydb/bdb.Cursor.CursorGetRaw.func1(0x7f62240432c0, 0xc436077530, 0xc4360775c0, 0x10, 0x0)
/home/vagrant/go/src/github.com/yowcow/goromdb/vendor/github.com/ajiyoshi-vg/goberkeleydb/bdb/berkeleydb_c.go:246 +0x16e fp=0xc420039b30 sp=0xc420039ae8 pc=0x50321e
github.com/yowcow/goromdb/vendor/github.com/ajiyoshi-vg/goberkeleydb/bdb.Cursor.CursorGetRaw(0x7f62240432c0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
/home/vagrant/go/src/github.com/yowcow/goromdb/vendor/github.com/ajiyoshi-vg/goberkeleydb/bdb/berkeleydb_c.go:246 +0x192 fp=0xc420039b98 sp=0xc420039b30 pc=0x5026b2
github.com/yowcow/goromdb/vendor/github.com/ajiyoshi-vg/goberkeleydb/bdb.Cursor.Next(0x7f62240432c0, 0xc432d264be, 0x1, 0x1, 0x7f6228bf8000, 0x1, 0xb, 0xc42002a700, 0xc439c659fe)
/home/vagrant/go/src/github.com/yowcow/goromdb/vendor/github.com/ajiyoshi-vg/goberkeleydb/bdb/berkeleydb_c.go:235 +0x37 fp=0xc420039bf8 sp=0xc420039b98 pc=0x5024a7
github.com/yowcow/goromdb/storage/bdbstorage.Cursor.Next(0xc42000e050, 0xc43209a780, 0x1f, 0xc420039c98, 0x445049, 0xc439c659e0, 0xc439c659c0, 0x1f, 0xc439c659e0)
/home/vagrant/go/src/github.com/yowcow/goromdb/storage/bdbstorage/bdbstorage.go:69 +0x32 fp=0xc420039c50 sp=0xc420039bf8 pc=0x504cb2
github.com/yowcow/goromdb/storage/bdbstorage.(*Cursor).Next(0xc42000e058, 0xc439c659e0, 0x1f, 0x542400, 0x844b01, 0x542400, 0x844b01, 0x1, 0x0)
<autogenerated>:1 +0x44 fp=0xc420039ca8 sp=0xc420039c50 pc=0x504e44
github.com/yowcow/goromdb/handler/radixhandler.Handler.buildTree(0xc4367de900, 0x841fe0, 0xc42000e030, 0xc420014160, 0xc420064190, 0x0)
/home/vagrant/go/src/github.com/yowcow/goromdb/handler/radixhandler/radixhandler.go:95 +0x11f fp=0xc420039d58 sp=0xc420039ca8 pc=0x4c1c3f
github.com/yowcow/goromdb/handler/radixhandler.(*Handler).Load(0xc42005e570, 0xc428a1fa00, 0x12, 0xc420039eb0, 0x1)
/home/vagrant/go/src/github.com/yowcow/goromdb/handler/radixhandler/radixhandler.go:74 +0xa7 fp=0xc420039da0 sp=0xc420039d58 pc=0x4c1a67
https://github.com/yowcow/goromdb/issues/57#issuecomment-349846536
This happens when db gets closed while a cursor is in iteration.
db, err := bdb.OpenBDB(bdb.NoEnv, bdb.NoTxn, file, nil, bdb.BTree, bdb.DbReadOnly, 0)
if err != nil {
panic(err)
}
c, err := db.NewCursor(bdb.NoTxn, 0)
if err != nil {
panic(err)
}
db.Close(0)
c.First()
and I get
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x7f919bb94de3]
runtime stack:
runtime.throw(0x4b506d, 0x2a)
/usr/local/go-1.9.2/src/runtime/panic.go:605 +0x95
runtime.sigpanic()
/usr/local/go-1.9.2/src/runtime/signal_unix.go:351 +0x2b8
goroutine 1 [syscall, locked to thread]:
runtime.cgocall(0x4797d0, 0xc42004bdf8, 0x4b4e2a)
/usr/local/go-1.9.2/src/runtime/cgocall.go:132 +0xe4 fp=0xc42004bdb8 sp=0xc42004bd78 pc=0x4032a4
github.com/ajiyoshi-vg/goberkeleydb/bdb._Cfunc_db_cursor_get(0x1e55d10, 0xc42005e150, 0xc42005e180, 0x7, 0x0)
github.com/ajiyoshi-vg/goberkeleydb/bdb/_obj/_cgo_gotypes.go:1042 +0x4d fp=0xc42004bdf8 sp=0xc42004bdb8 pc=0x4768fd
github.com/ajiyoshi-vg/goberkeleydb/bdb.(*Cursor).CursorGetRaw.func1(0x1e55d10, 0xc42005e150, 0xc42005e180, 0x7, 0xc42004be98)
/home/vagrant/go/src/github.com/ajiyoshi-vg/goberkeleydb/bdb/berkeleydb_c.go:242 +0x16e fp=0xc42004be40 sp=0xc42004bdf8 pc=0x47808e
github.com/ajiyoshi-vg/goberkeleydb/bdb.(*Cursor).CursorGetRaw(0xc42000e030, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
/home/vagrant/go/src/github.com/ajiyoshi-vg/goberkeleydb/bdb/berkeleydb_c.go:242 +0x195 fp=0xc42004bea8 sp=0xc42004be40 pc=0x477675
should have been resolved with #61