Skip to content

os/signal: TestStress failing on netbsd-amd64 #10656

@bsiegert

Description

@bsiegert

I got this test failure when running all.bash on netbsd-amd64, during the os/signal test:

runtime: newstack sp=0xc208025ee0 stack=[0xc208025800, 0xc208026000]
        morebuf={pc:0x427f4a sp:0xc208025ee8 lr:0x0}
        sched={pc:0x40ca74 sp:0xc208025ee0 lr:0x0 ctxt:0x0}
syscall.Syscall(0x25, 0xc4a, 0x1e, 0x0, 0x0, 0x0, 0x0)
        /home/bsiegert/go/src/syscall/asm_netbsd_amd64.s:40 +0x5b
syscall.Kill(0xc4a, 0x1e, 0x0, 0x0)
        /home/bsiegert/go/src/syscall/zsyscall_netbsd_amd64.go:655 +0x52
os/signal.TestStress.func2(0xc208016600, 0xc208016660)
        /home/bsiegert/go/src/os/signal/signal_test.go:96 +0x90
created by os/signal.TestStress
        /home/bsiegert/go/src/os/signal/signal_test.go:101 +0x111
fatal error: runtime: stack split at bad time

runtime stack:
runtime.throw(0x5dd510, 0x20)
        /home/bsiegert/go/src/runtime/panic.go:543 +0x96
runtime.newstack()
        /home/bsiegert/go/src/runtime/stack1.go:654 +0x5a0
runtime.morestack()
        /home/bsiegert/go/src/runtime/asm_amd64.s:330 +0x82

goroutine 10 [syscall]:
runtime.printlock()
        /home/bsiegert/go/src/runtime/print1.go:37 +0x6a fp=0xc208025f00 sp=0xc208025ee8
runtime.throw(0x5deb10, 0x2d)
        /home/bsiegert/go/src/runtime/panic.go:537 +0x9 fp=0xc208025f18 sp=0xc208025f00
runtime.exitsyscall(0x486072)
        /home/bsiegert/go/src/runtime/proc1.go:1953 +0x65 fp=0xc208025f58 sp=0xc208025f18
syscall.Syscall(0x25, 0xc4a, 0x1e, 0x0, 0x0, 0x0, 0x0)
        /home/bsiegert/go/src/syscall/asm_netbsd_amd64.s:40 +0x5b fp=0xc208025f60 sp=0xc208025f58
syscall.Kill(0xc4a, 0x1e, 0x0, 0x0)
        /home/bsiegert/go/src/syscall/zsyscall_netbsd_amd64.go:655 +0x52 fp=0xc208025fa0 sp=0xc208025f60
os/signal.TestStress.func2(0xc208016600, 0xc208016660)
        /home/bsiegert/go/src/os/signal/signal_test.go:96 +0x90 fp=0xc208025fd0 sp=0xc208025fa0
runtime.goexit()
        /home/bsiegert/go/src/runtime/asm_amd64.s:1670 +0x1 fp=0xc208025fd8 sp=0xc208025fd0
created by os/signal.TestStress
        /home/bsiegert/go/src/os/signal/signal_test.go:101 +0x111

goroutine 1 [chan receive]:
testing.RunTests(0x5fbd30, 0x689fe0, 0x6, 0x6, 0x7f7ff7fc0001)
        /home/bsiegert/go/src/testing/testing.go:561 +0xa6b
testing.(*M).Run(0xc208039f38, 0x24)
        /home/bsiegert/go/src/testing/testing.go:490 +0x73
main.main()
        os/signal/_test/_testmain.go:66 +0x119

goroutine 5 [syscall]:
os/signal.loop()
        /home/bsiegert/go/src/os/signal/signal_unix.go:22 +0x1f
created by os/signal.init.1
        /home/bsiegert/go/src/os/signal/signal_unix.go:28 +0x3f

goroutine 8 [chan receive]:
os/signal.TestStress(0xc20807c120)
        /home/bsiegert/go/src/os/signal/signal_test.go:105 +0x173
testing.tRunner(0xc20807c120, 0x689ff8)
        /home/bsiegert/go/src/testing/testing.go:452 +0x9c
created by testing.RunTests
        /home/bsiegert/go/src/testing/testing.go:560 +0xa2b
FAIL    os/signal       0.183s

Changing to the os/signal dir and running go test results in

edamame$ go test
runtime: gp: gp=panic during panic

goroutine 0 [idle]:
runtime.startpanic_m()
        /home/bsiegert/go/src/runtime/panic1.go:66 +0x154
runtime.systemstack(0x5fc188)
        /home/bsiegert/go/src/runtime/asm_amd64.s:278 +0xab
runtime.startpanic()
        /home/bsiegert/go/src/runtime/panic.go:521 +0x14
runtime.sighandler(0x5, 0xc208083c60, 0xc208083ce0, 0xc208000f00)
        /home/bsiegert/go/src/runtime/signal_amd64x.go:142 +0x2e3
runtime.sigtramp(0x100000005, 0x0, 0x0, 0x1, 0x0, 0xfffffe811224faa0, 0xffffffff808428bf, 0xcc000, 0x300000000, 0xfffffe826e69a848, ...)
        /home/bsiegert/go/src/runtime/sys_netbsd_amd64.s:256 +0x56
runtime.sigreturn_tramp(0x0, 0x0, 0x1, 0x0, 0xfffffe811224faa0, 0xffffffff808428bf, 0xcc000, 0x300000000, 0xfffffe826e69a848, 0xc4000, ...)
        /home/bsiegert/go/src/runtime/sys_netbsd_amd64.s:211

goroutine 10 [syscall]:
syscall.Syscall(0x25, 0x19ae, 0x1e, 0x0, 0x0, 0x428e34, 0x5fc010)
        /home/bsiegert/go/src/syscall/asm_netbsd_amd64.s:21 +0x5 fp=0xc208025f60 sp=0xc208025f58
syscall.Kill(0x19ae, 0x1e, 0x0, 0x0)
        /home/bsiegert/go/src/syscall/zsyscall_netbsd_amd64.go:655 +0x52 fp=0xc208025fa0 sp=0xc208025f60
os/signal.TestStress.func2(0xc208010600, 0xc208010660)
        /home/bsiegert/go/src/os/signal/signal_test.go:97 +0x95 fp=0xc208025fd0 sp=0xc208025fa0
runtime.goexit()
        /home/bsiegert/go/src/runtime/asm_amd64.s:1670 +0x1 fp=0xc208025fd8 sp=0xc208025fd0
created by os/signal.TestStress
        /home/bsiegert/go/src/os/signal/signal_test.go:101 +0x111

goroutine 1 [chan receive]:
testing.RunTests(0x5fbd30, 0x689fe0, 0x6, 0x6, 0x7f7ff7fc0001)
        /home/bsiegert/go/src/testing/testing.go:561 +0xa6b
testing.(*M).Run(0xc208039f38, 0x24)
        /home/bsiegert/go/src/testing/testing.go:490 +0x73
main.main()
        os/signal/_test/_testmain.go:66 +0x119

goroutine 5 [syscall]:
os/signal.loop()
        /home/bsiegert/go/src/os/signal/signal_unix.go:22 +0x1f
created by os/signal.init.1
        /home/bsiegert/go/src/os/signal/signal_unix.go:28 +0x3f

goroutine 8 [sleep]:
time.Sleep(0xb2d05e00)
        /home/bsiegert/go/src/runtime/time.go:59 +0xfc
os/signal.TestStress(0xc20807a120)
        /home/bsiegert/go/src/os/signal/signal_test.go:102 +0x11f
testing.tRunner(0xc20807a120, 0x689ff8)
        /home/bsiegert/go/src/testing/testing.go:452 +0x9c
created by testing.RunTests
        /home/bsiegert/go/src/testing/testing.go:560 +0xa2b

goroutine 9 [runnable]:
os/signal.TestStress.func1(0xc208010600, 0xc208010660)
        /home/bsiegert/go/src/os/signal/signal_test.go:81 +0x22e
created by os/signal.TestStress
        /home/bsiegert/go/src/os/signal/signal_test.go:88 +0xe4
exit status 2
FAIL    os/signal       0.048s

Running it a second time just after that, it hangs consuming 100% CPU and not reacting to signals (hah!).

Any ideas?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions