Skip to content

runtime: fatal error: stopTheWorld: not stopped #17442

Closed
@dvyukov

Description

@dvyukov

go version devel +d13fa4d Fri Oct 14 03:58:15 2016 +0000 linux/amd64

I am seeing the following crashes:

fatal error: stopTheWorld: not stopped
SIGABRT: abort
PC=0x448321 m=0

goroutine 0 [idle]:
runtime.futex(0x4ccb10, 0x0, 0x0, 0x0, 0x7f8f00000000, 0x7ffdfc0c2030, 0x0, 0x0, 0x7ffdfc0c2060, 0x409c7b, ...)
    /tmp/go-fuzz-build962140472/goroot/src/runtime/sys_linux_amd64.s:387 +0x21 fp=0x7ffdfc0c1ff0 sp=0x7ffdfc0c1fe8
runtime.futexsleep(0x4ccb10, 0x0, 0xffffffffffffffff)
    /tmp/go-fuzz-build962140472/goroot/src/runtime/os_linux.go:45 +0x62 fp=0x7ffdfc0c2040 sp=0x7ffdfc0c1ff0
runtime.notesleep(0x4ccb10)
    /tmp/go-fuzz-build962140472/goroot/src/runtime/lock_futex.go:145 +0x6b fp=0x7ffdfc0c2070 sp=0x7ffdfc0c2040
runtime.stopm()
    /tmp/go-fuzz-build962140472/goroot/src/runtime/proc.go:1596 +0xad fp=0x7ffdfc0c2098 sp=0x7ffdfc0c2070
runtime.gcstopm()
    /tmp/go-fuzz-build962140472/goroot/src/runtime/proc.go:1800 +0xb7 fp=0x7ffdfc0c20c0 sp=0x7ffdfc0c2098
runtime.schedule()
    /tmp/go-fuzz-build962140472/goroot/src/runtime/proc.go:2086 +0x110 fp=0x7ffdfc0c2100 sp=0x7ffdfc0c20c0
runtime.goschedImpl(0xc4200001a0)
    /tmp/go-fuzz-build962140472/goroot/src/runtime/proc.go:2200 +0xfb fp=0x7ffdfc0c2120 sp=0x7ffdfc0c2100
runtime.gopreempt_m(0xc4200001a0)
    /tmp/go-fuzz-build962140472/goroot/src/runtime/proc.go:2215 +0x36 fp=0x7ffdfc0c2138 sp=0x7ffdfc0c2120
runtime.newstack()
    /tmp/go-fuzz-build962140472/goroot/src/runtime/stack.go:1052 +0x2d6 fp=0x7ffdfc0c22b0 sp=0x7ffdfc0c2138
runtime.morestack()
    /tmp/go-fuzz-build962140472/goroot/src/runtime/asm_amd64.s:366 +0x7f fp=0x7ffdfc0c22b8 sp=0x7ffdfc0c22b0

Full crash message:
https://gist.github.com/dvyukov/7968c10af421d0ef5c5dcc6a9cdfff43

To reproduce:
check out github.com/dvyukov/go-fuzz on 430caef0d9e2de9993a25311ada71d9857cf9f80
apply:

diff --git a/examples/test/test.go b/examples/test/test.go
index 04740b8..3d4c5d28 100644
--- a/examples/test/test.go
+++ b/examples/test/test.go
@@ -34,7 +34,7 @@ func init() {
 }

 func Fuzz(data []byte) int {
-       // runtime.GOMAXPROCS(runtime.NumCPU())
+       runtime.GOMAXPROCS(runtime.NumCPU())
        if len(data) == 1 {
                if data[0] == '!' || data[0] == '#' {
                        panic("bingo 0")

from go-fuzz dir:
go install ./go-fuzz ./go-fuzz-build
go-fuzz-build github.com/dvyukov/go-fuzz/examples/test
go-fuzz -bin test-fuzz.zip -workdir examples/test
after some time the crash report appears in examples/test/crashers/*.output
if go-fuzz crashes with a panic, restart it, it crashes for unrelated reason

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeNeedsInvestigationSomeone must examine and confirm this is a valid issue and not a duplicate of an existing one.

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions