Skip to content

Seemingly impossible panic: tomb.Go called after all goroutines terminated #24

@myitcv

Description

@myitcv

Firstly: thanks for the awesome package.

Secondly, I must be missing something obvious here, but the following call stack would seem, from the panic, to be impossible:

panic: tomb.Go called after all goroutines terminated [recovered]
        panic: tomb.Go called after all goroutines terminated

goroutine 937 [running]:
github.com/govim/govim.(*govimImpl).DoProto.func1(0xc000171d40, 0xc00044fdf8)
        /home/myitcv/gostuff/src/github.com/myitcv/govim/channel_cmds.go:127 +0x1b6
panic(0x674360, 0x738b40)
        /home/myitcv/gos/src/runtime/panic.go:961 +0x15d
gopkg.in/tomb%2ev2.(*Tomb).Go(0xc000171de8, 0xc0004fcac0)
        /home/myitcv/gostuff/pkg/mod/gopkg.in/[email protected]/tomb.go:155 +0x106
github.com/govim/govim.(*govimImpl).run(0xc000171d40, 0xc0004d2360, 0xc0004cad80)
        /home/myitcv/gostuff/src/github.com/myitcv/govim/govim.go:472 +0x1c78
github.com/govim/govim.(*govimImpl).Run.func1(0x4d95e3, 0xc000218d70)
        /home/myitcv/gostuff/src/github.com/myitcv/govim/govim.go:404 +0x2a
github.com/govim/govim.(*govimImpl).DoProto(0xc000171d40, 0xc0003b0e20, 0x0, 0x0)
        /home/myitcv/gostuff/src/github.com/myitcv/govim/channel_cmds.go:131 +0x6a
github.com/govim/govim.(*govimImpl).Run(0xc000171d40, 0x6f89e0, 0xc0003b0f20)
        /home/myitcv/gostuff/src/github.com/myitcv/govim/govim.go:403 +0x52
github.com/govim/govim/testdriver.(*TestDriver).runGovim(0xc0001717a0, 0x0, 0x0)
        /home/myitcv/gostuff/src/github.com/myitcv/govim/testdriver/testdriver.go:383 +0x73
github.com/govim/govim/testdriver.(*TestDriver).tombgo.func1(0x0, 0x0)
        /home/myitcv/gostuff/src/github.com/myitcv/govim/testdriver/testdriver.go:326 +0x41
gopkg.in/tomb%2ev2.(*Tomb).run(0xc000171868, 0xc0005fc0a0)
        /home/myitcv/gostuff/pkg/mod/gopkg.in/[email protected]/tomb.go:163 +0x38
created by gopkg.in/tomb%2ev2.(*Tomb).Go
        /home/myitcv/gostuff/pkg/mod/gopkg.in/[email protected]/tomb.go:159 +0xba

Because the very fact the call stack is as shown surely indicates there is at least one go routine that has not terminated, i.e. the one that is attempting to call tomb.Go?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions