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
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 to be done soon. (regressions, serious bugs, outages)
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 to be done soon. (regressions, serious bugs, outages) 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

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 to be done soon. (regressions, serious bugs, outages)
Projects
None yet
Development

No branches or pull requests

2 participants