Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

runtime: "fatal error: schedule: holding locks" on various builders after CL 200577 #35424

Closed
bcmills opened this issue Nov 7, 2019 · 2 comments
Closed

Comments

@bcmills
Copy link
Member

@bcmills bcmills commented Nov 7, 2019

There are multiple schedule: holding locks failures in the builders as of CL 200577.

linux-arm64-packet is failing consistently (https://build.golang.org/log/40361c2d5d7a8cd5df1a49db496c265e4ed07c32):

fatal error: schedule: holding locks
fatal error: runtime·lock: lock count
fatal error: runtime·unlock: lock count
fatal error: runtime·unlock: lock count
[…]

freebsd-386-11_2 shows a flake with the same message on what seems to be a different codepath (https://build.golang.org/log/52cd107e4b520e625c9dc0030c172cb91be0e2a9):

go test proxy running at GOPROXY=http://127.0.0.1:52392/mod
go proxy: no archive rsc.io v1.5.2: file does not exist
go proxy: no archive rsc.io v1.0.0: file does not exist
go proxy: no archive rsc.io v1.1.0: file does not exist
go proxy: no archive rsc.io v1.0.0: file does not exist
go proxy: no archive rsc.io v1.0.0: file does not exist
go proxy: no archive rsc.io v1.0.0: file does not exist
go proxy: no archive rsc.io v1.5.1: file does not exist
fatal error: schedule: holding locks

runtime stack:
runtime.throw(0x862e93d, 0x17)
	/tmp/workdir/go/src/runtime/panic.go:1106 +0x64
runtime.schedule()
	/tmp/workdir/go/src/runtime/proc.go:2478 +0x475
runtime.goyield_m(0x39b29ea0)
	/tmp/workdir/go/src/runtime/proc.go:2772 +0x70
runtime.mcall(0x80a05f8)
	/tmp/workdir/go/src/runtime/asm_386.s:344 +0x43

CC @ianlancetaylor @CAFxX @dvyukov @cherrymui

@bcmills

This comment has been minimized.

Copy link
Member Author

@bcmills bcmills commented Nov 7, 2019

solaris-amd64-oraclerel is also failing consistently (https://build.golang.org/log/2c7a708c1218710a40539b526e8d6984b90edb23):

fatal error: schedule: holding locks

runtime stack:
runtime.throw(0xa2c81e, 0x17)
	/tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/runtime/panic.go:1106 +0x72
runtime.schedule()
	/tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/runtime/proc.go:2478 +0x519
runtime.goyield_m(0xc0002ce480)
	/tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/runtime/proc.go:2772 +0x9a
runtime.mcall(0x200000)
	/tmp/workdir-host-solaris-oracle-amd64-oraclerel/go/src/runtime/asm_amd64.s:318 +0x64
@gopherbot

This comment has been minimized.

Copy link

@gopherbot gopherbot commented Nov 7, 2019

Change https://golang.org/cl/205817 mentions this issue: Revert "sync: yield to the waiter when unlocking a starving mutex"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.