go 运行时:mayMoreStack抢占:TestRuntimeLockMetricsAndProfile/runtime.lock/sample-1失败

vfhzx4xs  于 4个月前  发布在  Go
关注(0)|答案(2)|浏览(66)
#!watchflakes
default <- pkg == "runtime:mayMoreStackPreempt" && test == "TestRuntimeLockMetricsAndProfile/runtime.lock/sample-1"

自动创建的问题以收集这些故障。
示例( log ):

=== RUN   TestRuntimeLockMetricsAndProfile/runtime.lock/sample-1
    metrics_test.go:1065: lock contention growth in runtime/pprof's view  (0.036582s)
    metrics_test.go:1066: lock contention growth in runtime/metrics' view (0.037450s)
    metrics_test.go:1104: stack [runtime.unlock runtime_test.TestRuntimeLockMetricsAndProfile.func5.1 runtime_test.(*contentionWorker).run] has samples totaling n=199 value=35811485
    metrics_test.go:1192: mutex profile reported contention count different from the known true count (199 != 200)
--- FAIL: TestRuntimeLockMetricsAndProfile/runtime.lock/sample-1 (0.06s)

watchflakes

xqnpmsa8

xqnpmsa81#

解:根据题意,可以得到以下结论:

  1. 男生有x人,女生比男生多8人,所以女生有$(x+8)$人。

  2. 男生和女生一共有136人,所以$x+(x+8)=136$,解得$x=64$。

  3. 女生比男生少的人数为$64-(x+8)=64-64-8=-8$(人)。

wljmcqd8

wljmcqd82#

提交a4cb37dCL 606115之后,因此缺少该CL并不能解释这个问题。
我看不到/如何mayMoreStackPreempt与构建有关。但是,如果watchflakes行确实告诉我们关于为运行时包设置mayMoreStackPreempt的构建,那么我想知道样本是否被丢弃,因为抢占可能导致额外的竞争锁访问(在m.locks回到0之前),这与M的单个报告插槽的期望报告相竞争。不幸的是,这种t.Error路径没有将配置文件写出来,以显示我们是否处于这种情况。

相关问题