Skip to content

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

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

Closed
bcmills opened this issue Nov 7, 2019 · 2 comments
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. release-blocker Soon This needs action soon. (recent regressions, service outages, unusual time-sensitive situations)
Milestone

Comments

@bcmills
Copy link
Contributor

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 bcmills added NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. release-blocker Soon This needs action soon. (recent regressions, service outages, unusual time-sensitive situations) labels Nov 7, 2019
@bcmills bcmills added this to the Go1.14 milestone Nov 7, 2019
@bcmills
Copy link
Contributor Author

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
Copy link
Contributor

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 subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. release-blocker Soon This needs action soon. (recent regressions, service outages, unusual time-sensitive situations)
Projects
None yet
Development

No branches or pull requests

2 participants