Skip to content

Instantly share code, notes, and snippets.

@bwester
Created April 15, 2022 04:28
Show Gist options
  • Save bwester/918bb8fad1c832896bf0c83705ea2bfb to your computer and use it in GitHub Desktop.
Save bwester/918bb8fad1c832896bf0c83705ea2bfb to your computer and use it in GitHub Desktop.
Stack dump of exec-deadlock.go when it has deadlocked.
Compile environment: CGO_ENABLED=0
Compiled with go1.18.1 .tar.gz release for darwin/amd64
Run on darwin/amd64 (macOS 11.6.5)
Output obtained from a dlv debugging session:
============================================================
(dlv) goroutines
Goroutine 1 - User: /opt/go1.18.1/src/runtime/os_darwin.go:348 syscall.runtime_BeforeExec (0x1058dd3)
Goroutine 2 - User: /opt/go1.18.1/src/runtime/proc.go:362 runtime.gopark (0x1031fb6) [force gc (idle)]
Goroutine 3 - User: /opt/go1.18.1/src/runtime/proc.go:362 runtime.gopark (0x1031fb6) [finalizer wait]
Goroutine 4 - User: /opt/go1.18.1/src/runtime/proc.go:362 runtime.gopark (0x1031fb6) [select]
Goroutine 17 - User: /opt/go1.18.1/src/runtime/proc.go:362 runtime.gopark (0x1031fb6) [GC sweep wait]
Goroutine 18 - User: /opt/go1.18.1/src/runtime/proc.go:362 runtime.gopark (0x1031fb6) [GC scavenge wait]
Goroutine 33 - User: /opt/go1.18.1/src/runtime/sigqueue.go:148 os/signal.signal_recv (0x1059768)
[7 goroutines]
(dlv) goroutine 1 bt
0 0x000000000105ab80 in runtime.systemstack_switch
at /opt/go1.18.1/src/runtime/asm_amd64.s:436
1 0x000000000104de46 in runtime.libcCall
at /opt/go1.18.1/src/runtime/sys_libc.go:48
2 0x000000000104d5cc in runtime.usleep
at /opt/go1.18.1/src/runtime/sys_darwin.go:248
3 0x0000000001058dd3 in runtime.osyield
at /opt/go1.18.1/src/runtime/os_darwin.go:348
4 0x0000000001058dd3 in syscall.runtime_BeforeExec
at /opt/go1.18.1/src/runtime/proc.go:4021
5 0x0000000001076165 in syscall.Exec
at /opt/go1.18.1/src/syscall/exec_unix.go:283
6 0x000000000108eddb in main.main
at ./exec-deadlock.go:12
7 0x0000000001031bf2 in runtime.main
at /opt/go1.18.1/src/runtime/proc.go:250
8 0x000000000105cc81 in runtime.goexit
at /opt/go1.18.1/src/runtime/asm_amd64.s:1571
(dlv) goroutine 2 bt
0 0x0000000001031fb6 in runtime.gopark
at /opt/go1.18.1/src/runtime/proc.go:362
1 0x0000000001031e4d in runtime.goparkunlock
at /opt/go1.18.1/src/runtime/proc.go:367
2 0x0000000001031e4d in runtime.forcegchelper
at /opt/go1.18.1/src/runtime/proc.go:301
3 0x000000000105cc81 in runtime.goexit
at /opt/go1.18.1/src/runtime/asm_amd64.s:1571
(dlv) goroutine 3 bt
0 0x0000000001031fb6 in runtime.gopark
at /opt/go1.18.1/src/runtime/proc.go:362
1 0x0000000001014e73 in runtime.goparkunlock
at /opt/go1.18.1/src/runtime/proc.go:367
2 0x0000000001014e73 in runtime.runfinq
at /opt/go1.18.1/src/runtime/mfinal.go:177
3 0x000000000105cc81 in runtime.goexit
at /opt/go1.18.1/src/runtime/asm_amd64.s:1571
(dlv) goroutine 4 bt
0 0x0000000001031fb6 in runtime.gopark
at /opt/go1.18.1/src/runtime/proc.go:362
1 0x00000000010411f2 in runtime.selectgo
at /opt/go1.18.1/src/runtime/select.go:328
2 0x0000000001045332 in runtime.ensureSigM.func1
at /opt/go1.18.1/src/runtime/signal_unix.go:973
3 0x000000000105cc81 in runtime.goexit
at /opt/go1.18.1/src/runtime/asm_amd64.s:1571
(dlv) goroutine 17 bt
0 0x0000000001031fb6 in runtime.gopark
at /opt/go1.18.1/src/runtime/proc.go:362
1 0x000000000101ffee in runtime.goparkunlock
at /opt/go1.18.1/src/runtime/proc.go:367
2 0x000000000101ffee in runtime.bgsweep
at /opt/go1.18.1/src/runtime/mgcsweep.go:278
3 0x0000000001015dc6 in runtime.gcenable.func1
at /opt/go1.18.1/src/runtime/mgc.go:177
4 0x000000000105cc81 in runtime.goexit
at /opt/go1.18.1/src/runtime/asm_amd64.s:1571
(dlv) goroutine 18 bt
0 0x0000000001031fb6 in runtime.gopark
at /opt/go1.18.1/src/runtime/proc.go:362
1 0x000000000101dc6c in runtime.goparkunlock
at /opt/go1.18.1/src/runtime/proc.go:367
2 0x000000000101dc6c in runtime.bgscavenge
at /opt/go1.18.1/src/runtime/mgcscavenge.go:272
3 0x0000000001015d66 in runtime.gcenable.func2
at /opt/go1.18.1/src/runtime/mgc.go:178
4 0x000000000105cc81 in runtime.goexit
at /opt/go1.18.1/src/runtime/asm_amd64.s:1571
(dlv) goroutine 33 bt
0 0x000000000105ab80 in runtime.systemstack_switch
at /opt/go1.18.1/src/runtime/asm_amd64.s:436
1 0x000000000104de46 in runtime.libcCall
at /opt/go1.18.1/src/runtime/sys_libc.go:48
2 0x000000000104d4b4 in runtime.read
at /opt/go1.18.1/src/runtime/sys_darwin.go:215
3 0x000000000102c8fe in runtime.sigNoteSleep
at /opt/go1.18.1/src/runtime/os_darwin.go:124
4 0x0000000001059768 in os/signal.signal_recv
at /opt/go1.18.1/src/runtime/sigqueue.go:148
5 0x000000000108ecb9 in os/signal.loop
at /opt/go1.18.1/src/os/signal/signal_unix.go:23
6 0x000000000105cc81 in runtime.goexit
at /opt/go1.18.1/src/runtime/asm_amd64.s:1571
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment