Closed
Description
signal: segmentation fault (core dumped)
FAIL runtime/trace 2.104s
greplogs -l -e 'signal: segmentation fault \(core dumped\)\nFAIL\s+runtime/trace' --since=2022-01-01
2022-09-06T15:49:30-c35bc69/linux-ppc64-buildlet
(CC @golang/runtime @golang/ppc64)
Metadata
Metadata
Assignees
Labels
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity
pmur commentedon Sep 19, 2022
I started looking into this. I was able to to reproduce a similar segfault on the VM on the same commit. I was able to get a core and save it off.
The backtrace of the fault:
bcmills commentedon Sep 19, 2022
Hmm, the fault in
gentraceback
suggests a possible connection to #50144, although that could also be an independent bug with a similar failure mode. 🤔pmur commentedon Sep 19, 2022
At the point of failure, I see that,
gp.m == nil
caused the fault inif flags&_TraceJumpStack != 0 && gp == gp.m.g0 && gp.m.curg != nil
.cherrymui commentedon Sep 19, 2022
CL https://golang.org/cl/428656 is supposed to fix the nil m case. Is the failure before or after that CL? Thanks.
pmur commentedon Sep 19, 2022
@cherrymui, this is 2 commits prior to that patch.
Though, if
gp.m
is nil, won't this still segfault when executinggp == gp.m.g0
?prattmic commentedon Sep 19, 2022
That check is guarding on the previous loop iteration. i.e., in the previous loop
gp.m.curg.m == nil
. Once we setgp = gp.m.curg
, then next iteration will crash ongp.m.g0
.pmur commentedon Sep 19, 2022
I am not able to reproduce this with CL 428655. I think this has been fixed by CL 428656.