Skip to content

runtime: executable compiled under Go 1.17.7 will occasionally wedge #52226

Closed
@alecthomas

Description

@alecthomas

What version of Go are you using (go version)?

$ go version
go version go1.17.7 darwin/amd64

Does this issue reproduce with the latest release?

I have not yet tried Go 1.17.8. Will do that.

What operating system and processor architecture are you using (go env)?

The executable in question is running on darwin amd64, and is cross-compiled from linux/amd64 running on GitHub Actions.

What did you do?

Not repeatably unfortunately, but one of our Go tools will occasionally wedge. The executable is cross-compiled to darwin/amd64 from linux/amd64 in GitHub Actions.

What did you expect to see?

My application not wedging and/or an uncorrupted stack trace that I could use to debug why it is wedging.

What did you see instead?

The following stack trace produced with CTRL-\:

fatal error: notesleep not on g0
panic during panic

goroutine 0 [idle]:
runtime: unexpected return pc for runtime.sigtramp called from 0x7ff8136dce2d
stack: frame={sp:0xc000009a60, fp:0xc000009ab0} stack=[0xc000002000,0xc00000a000)
0x000000c000009960:  0x0000000000000000  0x000000c0000099c0
0x000000c000009970:  0x0000000000000000  0x0000000000000000
0x000000c000009980:  0x000000c000000000  0x0000000000000000
0x000000c000009990:  0x0000000000000000  0x0000000000000000
0x000000c0000099a0:  0x000000c000009ee0  0x000000c000009f48
0x000000c0000099b0:  0x000000c000009a28  0x0000000001049811 <runtime.sigtrampgo+0x00000000000001b1>
0x000000c0000099c0:  0x000000c000000003  0x0000000001b57540
0x000000c0000099d0:  0x000000c0000099e8  0x0000000001b57160
0x000000c0000099e0:  0x0000000000000000  0x0000000000000000
0x000000c0000099f0:  0x0000000000000000  0x0000000000000000
0x000000c000009a00:  0x0000000000000000  0x0000000000000000
0x000000c000009a10:  0x0000000001b57160  0x000000c000009ee0
0x000000c000009a20:  0x000000c000009f48  0x000000c000009a50
0x000000c000009a30:  0x0000000001067e6e <runtime.sigtrampgo+0x000000000000002e>  0x0000000000000003
0x000000c000009a40:  0x000000c000009ee0  0x000000c000009f48
0x000000c000009a50:  0x000000c000009aa0  0x000000000106735c <runtime.sigtramp+0x000000000000003c>
0x000000c000009a60: <0x0000000000000003  0x000000c000009ee0
0x000000c000009a70:  0x000000c000009f48  0x000000c000009f48
0x000000c000009a80:  0x4e36ff976a55ba54  0x0000000001b578a0
0x000000c000009a90:  0x0000370100003800  0x0000000000003600
0x000000c000009aa0:  0x000000c000009ab0 !0x00007ff8136dce2d
0x000000c000009ab0: >0x00007ff7bfefe850  0x0000000000000000
0x000000c000009ac0:  0x0000000000000000  0x0000000000000000
0x000000c000009ad0:  0x0000000000000000  0x0200013100000085
0x000000c000009ae0:  0x00007ff7bfefe7b8  0x0000000000000104
0x000000c000009af0:  0x000000000acd8600  0x00007ff7bfefe7a8
0x000000c000009b00:  0x0000000000003600  0x0000000001b578e0
0x000000c000009b10:  0x0000370100003800  0x00007ff7bfefe850
0x000000c000009b20:  0x00007ff7bfefe7a8  0x0000000000000000
0x000000c000009b30:  0x00000000000000a0  0x0000000000000000
0x000000c000009b40:  0x0000000000000246  0x0000000000000016
0x000000c000009b50:  0x0000000001b578a0  0x0000370100003800
0x000000c000009b60:  0x0000000000003600  0x00007ff81368d506
0x000000c000009b70:  0x0000000000000247  0x0000000000000007
0x000000c000009b80:  0x0000000000000000  0x0000000000000000
0x000000c000009b90:  0x0000000000000000  0x000000000000037f
0x000000c000009ba0:  0x0000000000000000  0x0000000000000000
runtime.throw({0x1634b57, 0x0})
	/home/runner/.cache/hermit/pkg/go-1.17.7/src/runtime/panic.go:1198 +0x71
runtime.notesleep(0x0)
	/home/runner/.cache/hermit/pkg/go-1.17.7/src/runtime/lock_sema.go:169 +0x11a
runtime.(*rwmutex).rlock.func1()
	/home/runner/.cache/hermit/pkg/go-1.17.7/src/runtime/rwmutex.go:54 +0x78
runtime.(*rwmutex).rlock(0x0)
	/home/runner/.cache/hermit/pkg/go-1.17.7/src/runtime/rwmutex.go:41 +0x59
runtime.preemptM(0xc000066900)
	/home/runner/.cache/hermit/pkg/go-1.17.7/src/runtime/signal_unix.go:357 +0x29
runtime.preemptone(0x0)
	/home/runner/.cache/hermit/pkg/go-1.17.7/src/runtime/proc.go:5596 +0x5e
runtime.preemptall()
	/home/runner/.cache/hermit/pkg/go-1.17.7/src/runtime/proc.go:5558 +0x55
runtime.freezetheworld()
	/home/runner/.cache/hermit/pkg/go-1.17.7/src/runtime/proc.go:874 +0x73
runtime.startpanic_m()
	/home/runner/.cache/hermit/pkg/go-1.17.7/src/runtime/panic.go:1346 +0x16a
runtime.sighandler(0x3, 0x1b57540, 0xc0000099e8, 0x1b57160)
	/home/runner/.cache/hermit/pkg/go-1.17.7/src/runtime/signal_unix.go:620 +0x309
runtime.sigtrampgo(0x3, 0xc000009ee0, 0xc000009f48)
	/home/runner/.cache/hermit/pkg/go-1.17.7/src/runtime/signal_unix.go:460 +0x1b1
runtime.sigtrampgo(0x3, 0xc000009ee0, 0xc000009f48)
	<autogenerated>:1 +0x2e
runtime: unexpected return pc for runtime.sigtramp called from 0x7ff8136dce2d
stack: frame={sp:0xc000009a60, fp:0xc000009ab0} stack=[0xc000002000,0xc00000a000)
0x000000c000009960:  0x0000000000000000  0x000000c0000099c0
0x000000c000009970:  0x0000000000000000  0x0000000000000000
0x000000c000009980:  0x000000c000000000  0x0000000000000000
0x000000c000009990:  0x0000000000000000  0x0000000000000000
0x000000c0000099a0:  0x000000c000009ee0  0x000000c000009f48
0x000000c0000099b0:  0x000000c000009a28  0x0000000001049811 <runtime.sigtrampgo+0x00000000000001b1>
0x000000c0000099c0:  0x000000c000000003  0x0000000001b57540
0x000000c0000099d0:  0x000000c0000099e8  0x0000000001b57160
0x000000c0000099e0:  0x0000000000000000  0x0000000000000000
0x000000c0000099f0:  0x0000000000000000  0x0000000000000000
0x000000c000009a00:  0x0000000000000000  0x0000000000000000
0x000000c000009a10:  0x0000000001b57160  0x000000c000009ee0
0x000000c000009a20:  0x000000c000009f48  0x000000c000009a50
0x000000c000009a30:  0x0000000001067e6e <runtime.sigtrampgo+0x000000000000002e>  0x0000000000000003
0x000000c000009a40:  0x000000c000009ee0  0x000000c000009f48
0x000000c000009a50:  0x000000c000009aa0  0x000000000106735c <runtime.sigtramp+0x000000000000003c>
0x000000c000009a60: <0x0000000000000003  0x000000c000009ee0
0x000000c000009a70:  0x000000c000009f48  0x000000c000009f48
0x000000c000009a80:  0x4e36ff976a55ba54  0x0000000001b578a0
0x000000c000009a90:  0x0000370100003800  0x0000000000003600
0x000000c000009aa0:  0x000000c000009ab0 !0x00007ff8136dce2d
0x000000c000009ab0: >0x00007ff7bfefe850  0x0000000000000000
0x000000c000009ac0:  0x0000000000000000  0x0000000000000000
0x000000c000009ad0:  0x0000000000000000  0x0200013100000085
0x000000c000009ae0:  0x00007ff7bfefe7b8  0x0000000000000104
0x000000c000009af0:  0x000000000acd8600  0x00007ff7bfefe7a8
0x000000c000009b00:  0x0000000000003600  0x0000000001b578e0
0x000000c000009b10:  0x0000370100003800  0x00007ff7bfefe850
0x000000c000009b20:  0x00007ff7bfefe7a8  0x0000000000000000
0x000000c000009b30:  0x00000000000000a0  0x0000000000000000
0x000000c000009b40:  0x0000000000000246  0x0000000000000016
0x000000c000009b50:  0x0000000001b578a0  0x0000370100003800
0x000000c000009b60:  0x0000000000003600  0x00007ff81368d506
0x000000c000009b70:  0x0000000000000247  0x0000000000000007
0x000000c000009b80:  0x0000000000000000  0x0000000000000000
0x000000c000009b90:  0x0000000000000000  0x000000000000037f
0x000000c000009ba0:  0x0000000000000000  0x0000000000000000
runtime.sigtramp()
	/home/runner/.cache/hermit/pkg/go-1.17.7/src/runtime/sys_darwin_amd64.s:227 +0x3c

goroutine 1 [running]:
	goroutine running on other thread; stack unavailable

goroutine 35 [sleep]:
time.Sleep(0x5f5e100)
	/home/runner/.cache/hermit/pkg/go-1.17.7/src/runtime/time.go:193 +0x12e
github.com/cashapp/hermit/app.Main.func2()
	/home/runner/go/pkg/mod/github.com/cashapp/hermit@v0.18.2/app/main.go:117 +0x3d
created by github.com/cashapp/hermit/app.Main
	/home/runner/go/pkg/mod/github.com/cashapp/hermit@v0.18.2/app/main.go:115 +0x372

goroutine 36 [chan receive, 8 minutes]:
github.com/cashapp/hermit/ui.New.func2()
	/home/runner/go/pkg/mod/github.com/cashapp/hermit@v0.18.2/ui/ui.go:90 +0x4d
created by github.com/cashapp/hermit/ui.New
	/home/runner/go/pkg/mod/github.com/cashapp/hermit@v0.18.2/ui/ui.go:89 +0x23d

goroutine 19 [syscall, 8 minutes]:
os/signal.signal_recv()
	/home/runner/.cache/hermit/pkg/go-1.17.7/src/runtime/sigqueue.go:166 +0x28
os/signal.loop()
	/home/runner/.cache/hermit/pkg/go-1.17.7/src/os/signal/signal_unix.go:24 +0x19
created by os/signal.Notify.func1.1
	/home/runner/.cache/hermit/pkg/go-1.17.7/src/os/signal/signal.go:151 +0x2c

Metadata

Metadata

Assignees

No one assigned

    Labels

    FrozenDueToAgeNeedsFixThe path to resolution is known, but the work has not been done.OS-Darwin

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions