Skip to content

non-deterministic segfault #6

@rwcarlsen

Description

@rwcarlsen

I've been using your driver to do some post-processing analysis on various sqlite databases I have. The analysis involves many queryies, table creation, insertions, etc. To the best of my knowledge, there is no concurrency in the post-process.

To reproduce:

  • go get github.com/rwcarlsen/cyan/...
  • download https://drive.google.com/file/d/0B6XSHy3AAHtsSHJhTmZMT2E1TEE/edit?usp=sharing
  • run cp orig-segfault.sqlite segfault.sqlite; cycpost segfault.sqlite over and over - eventually you get a segfault (sample output below). I usually get a segfault after a couple hundred runs. Since cycpost modifies the database in-place, you need to keep a fresh, un-post-processed copy of the db around.

Other info:

  • go version go1.2.1 linux/amd64
  • GOMAXPROCS -> unset

Sample failure output:

SIGSEGV: segmentation violation
PC=0x40e52e
signal arrived during cgo execution

runtime.cgocall(0x405d83, 0x7f9d2aebc2c8)
    /home/r/go/src/pkg/runtime/cgocall.c:149 +0x11b fp=0x7f9d2aebc2b0
github.com/mxk/go-sqlite/sqlite3._Cfunc_sqlite3_step(0x2817bc8, 0x7f9d2aebc430)
    github.com/mxk/go-sqlite/sqlite3/_obj/_cgo_defun.c:608 +0x31 fp=0x7f9d2aebc2c8
github.com/mxk/go-sqlite/sqlite3.(*Stmt).step(0xc2100836e0, 0x7f9d2aebc430, 0x2)
    /home/r/gopath/src/github.com/mxk/go-sqlite/sqlite3/sqlite3.go:959 +0x65 fp=0x7f9d2aebc310
github.com/mxk/go-sqlite/sqlite3.(*Stmt).exec(0xc2100836e0, 0x7f9d2aebc430, 0x2, 0x2, 0x0, ...)
    /home/r/gopath/src/github.com/mxk/go-sqlite/sqlite3/sqlite3.go:870 +0xdb fp=0x7f9d2aebc360
github.com/mxk/go-sqlite/sqlite3.(*Stmt).Query(0xc2100836e0, 0x7f9d2aebc430, 0x2, 0x2, 0x536ba0, ...)
    /home/r/gopath/src/github.com/mxk/go-sqlite/sqlite3/sqlite3.go:771 +0x9e fp=0x7f9d2aebc398
github.com/rwcarlsen/cyan/post.(*Context).getNewOwners(0xc21005d180, 0x501, 0x0, 0x0, 0x0, ...)
    /home/r/gopath/src/github.com/rwcarlsen/cyan/post/walker.go:294 +0x178 fp=0x7f9d2aebc478
github.com/rwcarlsen/cyan/post.(*Context).walkDown(0xc21005d180, 0xc2100d8b10)
    /home/r/gopath/src/github.com/rwcarlsen/cyan/post/walker.go:259 +0x508 fp=0x7f9d2aebc648
github.com/rwcarlsen/cyan/post.(*Context).walkDown(0xc21005d180, 0xc2100d8a80)
    /home/r/gopath/src/github.com/rwcarlsen/cyan/post/walker.go:288 +0x991 fp=0x7f9d2aebc818
github.com/rwcarlsen/cyan/post.(*Context).walkDown(0xc21005d180, 0xc2100d8a20)
    /home/r/gopath/src/github.com/rwcarlsen/cyan/post/walker.go:288 +0x991 fp=0x7f9d2aebc9e8
github.com/rwcarlsen/cyan/post.(*Context).walkDown(0xc21005d180, 0xc2100d89c0)
    /home/r/gopath/src/github.com/rwcarlsen/cyan/post/walker.go:288 +0x991 fp=0x7f9d2aebcbb8
github.com/rwcarlsen/cyan/post.(*Context).walkDown(0xc21005d180, 0xc21008e840)
    /home/r/gopath/src/github.com/rwcarlsen/cyan/post/walker.go:288 +0x991 fp=0x7f9d2aebcd88
github.com/rwcarlsen/cyan/post.(*Context).WalkAll(0xc21005d180, 0x0, 0x0)
    /home/r/gopath/src/github.com/rwcarlsen/cyan/post/walker.go:196 +0x3f0 fp=0x7f9d2aebce88
main.main()
    /home/r/gopath/src/github.com/rwcarlsen/cyan/cmd/cycpost/main.go:39 +0x1d6 fp=0x7f9d2aebcf48
runtime.main()
    /home/r/go/src/pkg/runtime/proc.c:220 +0x11f fp=0x7f9d2aebcfa0
runtime.goexit()
    /home/r/go/src/pkg/runtime/proc.c:1394 fp=0x7f9d2aebcfa8

goroutine 3 [syscall]:
runtime.goexit()
    /home/r/go/src/pkg/runtime/proc.c:1394

goroutine 4 [finalizer wait]:
runtime.park(0x48f920, 0x8cdc68, 0x8c0d68)
    /home/r/go/src/pkg/runtime/proc.c:1342 +0x66
runfinq()
    /home/r/go/src/pkg/runtime/mgc0.c:2279 +0x84
runtime.goexit()
    /home/r/go/src/pkg/runtime/proc.c:1394

rax     0xee478523a12a5b8b
rbx     0x2671428
rcx     0x267de00
rdx     0x267de00
rdi     0x2671428
rsi     0xd
rbp     0x1a0
rsp     0x7f9d2a0b1870
r8      0x1
r9      0x0
r10     0x45
r11     0x7f9d240008c8
r12     0x2671428
r13     0x0
r14     0x26b54eb
r15     0xc
rip     0x40e52e
rflags  0x10286
cs      0x33
fs      0x0
gs      0x0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions