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: workbuf is empty" on openbsd-amd64-68 #53176

Closed
bcmills opened this issue Jun 1, 2022 · 3 comments
Closed

runtime: "fatal error: workbuf is empty" on openbsd-amd64-68 #53176

bcmills opened this issue Jun 1, 2022 · 3 comments
Labels
FrozenDueToAge NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. OS-OpenBSD
Milestone

Comments

@bcmills
Copy link
Contributor

bcmills commented Jun 1, 2022

fatal error: workbuf is empty

runtime stack:
runtime.throw({0xa07e04?, 0x20300000427965?})
	/tmp/workdir/go/src/runtime/panic.go:1047 +0x5d fp=0x2d5c193b8 sp=0x2d5c19388 pc=0x435cfd
runtime.(*workbuf).checknonempty(0x2d5c193e8?)
	/tmp/workdir/go/src/runtime/mgcwork.go:337 +0x36 fp=0x2d5c193d8 sp=0x2d5c193b8 pc=0x427556
runtime.trygetfull()
	/tmp/workdir/go/src/runtime/mgcwork.go:429 +0x65 fp=0x2d5c193f8 sp=0x2d5c193d8 pc=0x427965
runtime.(*gcWork).tryGet(0xc000035238)
	/tmp/workdir/go/src/runtime/mgcwork.go:215 +0x5b fp=0x2d5c19428 sp=0x2d5c193f8 pc=0x4272db
runtime.gcDrain(0xc000035238, 0x7)
	/tmp/workdir/go/src/runtime/mgcmark.go:1084 +0x185 fp=0x2d5c19488 sp=0x2d5c19428 pc=0x4204e5
runtime.gcBgMarkWorker.func2()
	/tmp/workdir/go/src/runtime/mgc.go:1323 +0x6d fp=0x2d5c194d8 sp=0x2d5c19488 pc=0x41cfad
runtime.systemstack()
	/tmp/workdir/go/src/runtime/asm_amd64.s:492 +0x49 fp=0x2d5c194e0 sp=0x2d5c194d8 pc=0x464089

goroutine 19 [GC worker (idle)]:
runtime.systemstack_switch()
	/tmp/workdir/go/src/runtime/asm_amd64.s:459 fp=0xc000042750 sp=0xc000042748 pc=0x464020
runtime.gcBgMarkWorker()
	/tmp/workdir/go/src/runtime/mgc.go:1291 +0x1ae fp=0xc0000427e0 sp=0xc000042750 pc=0x41cc8e
runtime.goexit()
	/tmp/workdir/go/src/runtime/asm_amd64.s:1594 +0x1 fp=0xc0000427e8 sp=0xc0000427e0 pc=0x466261
created by runtime.gcBgMarkStartWorkers
	/tmp/workdir/go/src/runtime/mgc.go:1159 +0x25

greplogs -l -e 'fatal error: workbuf is empty' --since=2022-02-02
2022-05-25T16:16:01-4e4db1e/openbsd-amd64-68

With N=1 failures since the OpenBSD builders became stable again, it's not at all clear to me whether this is a platform-specific failure mode. Leaving on the Backlog to collect more data.

(CC @golang/runtime @golang/openbsd)

@bcmills bcmills added OS-OpenBSD NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. labels Jun 1, 2022
@bcmills bcmills added this to the Backlog milestone Jun 1, 2022
@bcmills
Copy link
Contributor Author

bcmills commented Jun 28, 2022

https://storage.googleapis.com/go-build-log/953e6766/openbsd-amd64-68_9208aef0.log (a TryBot on backport CL 414794):

            fatal error: workbuf is empty
            
            runtime stack:
            runtime.throw({0x9e1852?, 0x2030000042689d?})
            	/tmp/workdir/go/src/runtime/panic.go:992 +0x71 fp=0x22d237f38 sp=0x22d237f08 pc=0x434691
            runtime.(*workbuf).checknonempty(0x22d237f68?)
            	/tmp/workdir/go/src/runtime/mgcwork.go:336 +0x36 fp=0x22d237f58 sp=0x22d237f38 pc=0x426496
            runtime.trygetfull()
            	/tmp/workdir/go/src/runtime/mgcwork.go:424 +0x5d fp=0x22d237f78 sp=0x22d237f58 pc=0x42689d
            runtime.(*gcWork).tryGet(0xc000038138)
            	/tmp/workdir/go/src/runtime/mgcwork.go:214 +0x5b fp=0x22d237fa8 sp=0x22d237f78 pc=0x42621b
            runtime.gcDrain(0xc000038138, 0x7)
            	/tmp/workdir/go/src/runtime/mgcmark.go:1068 +0x185 fp=0x22d238008 sp=0x22d237fa8 pc=0x41f865
            runtime.gcBgMarkWorker.func2()
            	/tmp/workdir/go/src/runtime/mgc.go:1295 +0x6e fp=0x22d238058 sp=0x22d238008 pc=0x41c90e
            runtime.systemstack()
            	/tmp/workdir/go/src/runtime/asm_amd64.s:469 +0x49 fp=0x22d238060 sp=0x22d238058 pc=0x461ee9
            
            goroutine 36 [GC worker (idle)]:
            runtime.systemstack_switch()
            	/tmp/workdir/go/src/runtime/asm_amd64.s:436 fp=0xc00003f758 sp=0xc00003f750 pc=0x461e80
            runtime.gcBgMarkWorker()
            	/tmp/workdir/go/src/runtime/mgc.go:1263 +0x1a5 fp=0xc00003f7e0 sp=0xc00003f758 pc=0x41c625
            runtime.goexit()
            	/tmp/workdir/go/src/runtime/asm_amd64.s:1571 +0x1 fp=0xc00003f7e8 sp=0xc00003f7e0 pc=0x4640c1
            created by runtime.gcBgMarkStartWorkers
            	/tmp/workdir/go/src/runtime/mgc.go:1131 +0x25

@bcmills
Copy link
Contributor Author

bcmills commented Jun 28, 2022

Curiously, both of the above have a concurrent call to syscall.forkExec on another goroutine.

I suppose that makes this an instance of #34988.

@bcmills
Copy link
Contributor Author

bcmills commented Jun 28, 2022

Duplicate of #34988

@bcmills bcmills marked this as a duplicate of #34988 Jun 28, 2022
@bcmills bcmills closed this as not planned Won't fix, can't repro, duplicate, stale Jun 28, 2022
@golang golang locked and limited conversation to collaborators Jun 28, 2023
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. OS-OpenBSD
Projects
None yet
Development

No branches or pull requests

2 participants