go runtime/pprof: TestCPUProfileLabel 在 aix-ppc64 上表现不稳定,

yjghlzjz  于 6个月前  发布在  Go
关注(0)|答案(2)|浏览(44)

2020-04-08T18:37:38-d5e1b7c/aix-ppc64
2020-03-17T01:24:51-7ec4adb/aix-ppc64
2019-12-20T20:12:18-b234fdb/aix-ppc64
2019-11-19T19:21:57-e0306c1/aix-ppc64
2019-09-26T17:37:02-a37f2b4/aix-ppc64
对我来说,不清楚这是否是一个构建器问题,一个AIX平台问题,还是一个对时间敏感的测试。
感谢hyangah提供的pprof,感谢trex58、Helflym、andybons、toothrot、cagedmantis和dmitshur提供的builders。

iyr7buue

iyr7buue1#

我认为这与 #36084 相同。测试似乎陷入了一个名为 usleep 的死锁,由 svmon 调用,如样本所示。

184: 0x10002f304 (runtime.usleep:509) 0x10003fe33 (runtime.sysmon:4333) 0x1000373e3 (runtime.mstart1:1238) 0x1000372cb (runtime.mstart:1203)

不仅仅是构建者,因为我在本地机器上也遇到了相同的故障。
是否有可能 sysmonpprof 函数之间发生死锁?

qmelpv7a

qmelpv7a2#

这个不稳定的TestCPUProfileLabel失败至少在linux/amd64上发生过一次:

--- FAIL: TestCPUProfileLabel (5.00s)
    pprof_test.go:514: total 4 CPU profile samples collected:
        3: 0x466db7 (runtime.madvise:539) 0x416f74 (runtime.sysUnused:111) 0x4211d3 (runtime.(*pageAlloc).scavengeRangeLocked:734) 0x420cf6 (runtime.(*pageAlloc).scavengeOne:628) 0x4205cd (runtime.(*pageAlloc).scavenge:419) 0x420504 (runtime.bgscavenge.func2:310) 0x462e88 (runtime.systemstack:477) 0x4202af (runtime.bgscavenge:298)
        
        1: 0x442f0f (runtime.runqget:5975) 0x43b430 (runtime.findrunnable:2728) 0x43cad8 (runtime.schedule:3361) 0x43d02c (runtime.park_m:3510) 0x462e02 (runtime.mcall:433)
        
    pprof_test.go:530: too few samples; got 4, want at least 125, ideally 500
    pprof_test.go:549: runtime/pprof.cpuHogger;key=value: 0
    pprof_test.go:552: no samples in expected functions
    pprof_test.go:562: runtime/pprof.cpuHogger;key=value has 0 samples out of 0, want at least 1, ideally 0

( Build log .)
从CL 361294上的slowbot运行中出现。第一次重试时没有发生。

相关问题