Skip to content

runtime/pprof: apparent deadlock in TestGoroutineSwitch on linux-armv6l #47505

@toothrot

Description

@toothrot

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

go1.17rc2

Does this issue reproduce with the latest release?

Literally yes.

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

linux-armv6l

What did you do?

Ran tests as part of building a release. They failed the first 2 of 3 attempts.

release -target linux-armv6l -user go-dev -version go1.17rc2 -staging_dir [REDACTED]/go-releasebot-work/go1.17rc2/release-staging/d0232c682c4023cba6e6ce8e9c4384446a47918a_707736155 -rev d0232c682c4023cba6e6ce8e9c4384446a47918a

See #47502

What did you expect to see?

Success

What did you see instead?

SIGQUIT: quit
PC=0x7dfc4 m=1 sigcode=0

goroutine 0 [idle]:
runtime.usleep()
	/usr/local/go/src/runtime/sys_linux_arm.s:604 +0x2c fp=0x203df7c sp=0x203df6c pc=0x7dfc4
runtime.sysmon()
	/usr/local/go/src/runtime/proc.go:5330 +0xe4 fp=0x203dfd8 sp=0x203df7c pc=0x57d7c
runtime.mstart1()
	/usr/local/go/src/runtime/proc.go:1407 +0x7c fp=0x203dfe8 sp=0x203dfd8 pc=0x4e380
runtime.mstart0()
	/usr/local/go/src/runtime/proc.go:1365 +0x68 fp=0x203dffc sp=0x203dfe8 pc=0x4e2e8
runtime.mstart()
	/usr/local/go/src/runtime/asm_arm.s:211 +0x8 fp=0x203e000 sp=0x203dffc pc=0x7b17c

goroutine 1 [chan receive]:
runtime.gopark(0x196d28, 0x211c2f0, 0xe, 0x17, 0x2)
	/usr/local/go/src/runtime/proc.go:366 +0x100 fp=0x2104d0c sp=0x2104cf8 pc=0x4ba2c
runtime.chanrecv(0x211c2c0, 0x2104d93, 0x1)
	/usr/local/go/src/runtime/chan.go:576 +0x530 fp=0x2104d58 sp=0x2104d0c pc=0x15a58
runtime.chanrecv1(0x211c2c0, 0x2104d93)
	/usr/local/go/src/runtime/chan.go:439 +0x20 fp=0x2104d6c sp=0x2104d58 pc=0x15524
testing.(*T).Run(0x21180f0, {0x189c2d, 0x11}, 0x196f00)
	/usr/local/go/src/testing/testing.go:1307 +0x37c fp=0x2104db8 sp=0x2104d6c pc=0xdedd8
testing.runTests.func1(0x21180f0)
	/usr/local/go/src/testing/testing.go:1598 +0x6c fp=0x2104ddc sp=0x2104db8 pc=0xe0788
testing.tRunner(0x21180f0, 0x208de70)
	/usr/local/go/src/testing/testing.go:1259 +0xf0 fp=0x2104e1c sp=0x2104ddc pc=0xde1f0
testing.runTests(0x21241d0, {0x2869b8, 0x1e, 0x1e}, {0xc03a29201607a930, 0xfb750b9c04, 0x288618})
	/usr/local/go/src/testing/testing.go:1596 +0x3d8 fp=0x2104e80 sp=0x2104e1c pc=0xe0604
testing.(*M).Run(0x2166050)
	/usr/local/go/src/testing/testing.go:1504 +0x514 fp=0x2104f88 sp=0x2104e80 pc=0xdf490
main.main()
	_testmain.go:101 +0x150 fp=0x2104fbc sp=0x2104f88 pc=0x15a1d0
runtime.main()
	/usr/local/go/src/runtime/proc.go:255 +0x278 fp=0x2104fe4 sp=0x2104fbc pc=0x4b54c
runtime.goexit()
	/usr/local/go/src/runtime/asm_arm.s:838 +0x4 fp=0x2104fe4 sp=0x2104fe4 pc=0x7cd94

goroutine 2 [running]:
	goroutine running on other thread; stack unavailable
created by runtime.init.6
	/usr/local/go/src/runtime/proc.go:294 +0x24

goroutine 3 [GC sweep wait]:
runtime.gopark(0x196dfc, 0x2885c0, 0xc, 0x14, 0x1)
	/usr/local/go/src/runtime/proc.go:366 +0x100 fp=0x202b7d8 sp=0x202b7c4 pc=0x4ba2c
runtime.goparkunlock(...)
	/usr/local/go/src/runtime/proc.go:372
runtime.bgsweep()
	/usr/local/go/src/runtime/mgcsweep.go:182 +0x104 fp=0x202b7ec sp=0x202b7d8 pc=0x341c4
runtime.goexit()
	/usr/local/go/src/runtime/asm_arm.s:838 +0x4 fp=0x202b7ec sp=0x202b7ec pc=0x7cd94
created by runtime.gcenable
	/usr/local/go/src/runtime/mgc.go:181 +0x60

goroutine 4 [GC scavenge wait]:
runtime.gopark(0x196dfc, 0x288548, 0xd, 0x14, 0x1)
	/usr/local/go/src/runtime/proc.go:366 +0x100 fp=0x202bfb0 sp=0x202bf9c pc=0x4ba2c
runtime.goparkunlock(...)
	/usr/local/go/src/runtime/proc.go:372
runtime.bgscavenge()
	/usr/local/go/src/runtime/mgcscavenge.go:314 +0x2ac fp=0x202bfec sp=0x202bfb0 pc=0x322e0
runtime.goexit()
	/usr/local/go/src/runtime/asm_arm.s:838 +0x4 fp=0x202bfec sp=0x202bfec pc=0x7cd94
created by runtime.gcenable
	/usr/local/go/src/runtime/mgc.go:182 +0x74

goroutine 17 [finalizer wait, 18 minutes]:
runtime.gopark(0x196dfc, 0x29a02c, 0x10, 0x14, 0x1)
	/usr/local/go/src/runtime/proc.go:366 +0x100 fp=0x202a790 sp=0x202a77c pc=0x4ba2c
runtime.goparkunlock(...)
	/usr/local/go/src/runtime/proc.go:372
runtime.runfinq()
	/usr/local/go/src/runtime/mfinal.go:177 +0xbc fp=0x202a7ec sp=0x202a790 pc=0x27258
runtime.goexit()
	/usr/local/go/src/runtime/asm_arm.s:838 +0x4 fp=0x202a7ec sp=0x202a7ec pc=0x7cd94
created by runtime.createfing
	/usr/local/go/src/runtime/mfinal.go:157 +0x5c

goroutine 26 [running]:
	goroutine running on other thread; stack unavailable
created by testing.(*T).Run
	/usr/local/go/src/testing/testing.go:1306 +0x35c

goroutine 21 [GC worker (idle), 18 minutes]:
runtime.gopark(0x196d60, 0x2588000, 0x18, 0x14, 0x0)
	/usr/local/go/src/runtime/proc.go:366 +0x100 fp=0x2026f9c sp=0x2026f88 pc=0x4ba2c
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1200 +0x100 fp=0x2026fec sp=0x2026f9c pc=0x2a6b8
runtime.goexit()
	/usr/local/go/src/runtime/asm_arm.s:838 +0x4 fp=0x2026fec sp=0x2026fec pc=0x7cd94
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1124 +0x28

goroutine 33 [GC worker (idle), 18 minutes]:
runtime.gopark(0x196d60, 0x2154078, 0x18, 0x14, 0x0)
	/usr/local/go/src/runtime/proc.go:366 +0x100 fp=0x259079c sp=0x2590788 pc=0x4ba2c
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1200 +0x100 fp=0x25907ec sp=0x259079c pc=0x2a6b8
runtime.goexit()
	/usr/local/go/src/runtime/asm_arm.s:838 +0x4 fp=0x25907ec sp=0x25907ec pc=0x7cd94
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1124 +0x28

goroutine 22 [GC worker (idle)]:
runtime.gopark(0x196d60, 0x2154090, 0x18, 0x14, 0x0)
	/usr/local/go/src/runtime/proc.go:366 +0x100 fp=0x202779c sp=0x2027788 pc=0x4ba2c
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1200 +0x100 fp=0x20277ec sp=0x202779c pc=0x2a6b8
runtime.goexit()
	/usr/local/go/src/runtime/asm_arm.s:838 +0x4 fp=0x20277ec sp=0x20277ec pc=0x7cd94
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1124 +0x28

goroutine 23 [GC worker (idle)]:
runtime.gopark(0x196d60, 0x21540a8, 0x18, 0x14, 0x0)
	/usr/local/go/src/runtime/proc.go:366 +0x100 fp=0x2027f9c sp=0x2027f88 pc=0x4ba2c
runtime.gcBgMarkWorker()
	/usr/local/go/src/runtime/mgc.go:1200 +0x100 fp=0x2027fec sp=0x2027f9c pc=0x2a6b8
runtime.goexit()
	/usr/local/go/src/runtime/asm_arm.s:838 +0x4 fp=0x2027fec sp=0x2027fec pc=0x7cd94
created by runtime.gcBgMarkStartWorkers
	/usr/local/go/src/runtime/mgc.go:1124 +0x28

goroutine 27 [sleep]:
runtime.gopark(0x196e18, 0x20100c0, 0x13, 0x13, 0x1)
	/usr/local/go/src/runtime/proc.go:366 +0x100 fp=0x2028790 sp=0x202877c pc=0x4ba2c
time.Sleep(0x5f5e100)
	/usr/local/go/src/runtime/time.go:193 +0x170 fp=0x20287ac sp=0x2028790 pc=0x7aed8
runtime/pprof.profileWriter({0x1be2a8, 0x22c8300})
	/usr/local/go/src/runtime/pprof/pprof.go:799 +0x5c fp=0x20287e4 sp=0x20287ac pc=0x13c2cc
runtime.goexit()
	/usr/local/go/src/runtime/asm_arm.s:838 +0x4 fp=0x20287e4 sp=0x20287e4 pc=0x7cd94
created by runtime/pprof.StartCPUProfile
	/usr/local/go/src/runtime/pprof/pprof.go:784 +0x140

trap    0x0
error   0x0
oldmask 0x0
r0      0xfffffffc
r1      0x0
r2      0x0
r3      0x2710
r4      0x0
r5      0x4
r6      0x200c010
r7      0xa2
r8      0x6
r9      0x1
r10     0x20002d0
fp      0x2710
ip      0x80000000
sp      0x203df6c
lr      0x7dfa4
pc      0x7dfc4
cpsr    0x20800010
fault   0x0
*** Test killed with quit: ran too long (19m0s).

Metadata

Metadata

Assignees

No one assigned

    Labels

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

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions