-
Notifications
You must be signed in to change notification settings - Fork 17.7k
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: TestPanicSystemstack is flaky on linux #33626
Comments
CC @prattmic |
This test is racy. The child process prints "x", then blocks on a lock. The parent waits for "x", sends SIGQUIT, and then expects the resulting stack trace to reflect the blocked state. However, the signal may be delivered before the child gets to blocking, resulting in this failure. There isn't a great way for the parent to determine that the child is blocked, but at least it could sleep a bit to make it less likely to hit the bad case. |
Change https://golang.org/cl/268578 mentions this issue: |
Would it be possible to move the (Or is the systemstack goroutine something that can't be introspected through the runtime's usual hooks?) |
Hm, we could perhaps have However, that may be worse than sleeping. :) |
There's a bit of an orthogonal issue with this test, which I'm not sure if it is a regression since golang.org/cl/38012 or not. The passing version of this test looks like this:
We print goroutine 6 twice, once on its own (no stack, since it is running), and once with the systemstack g0.
cc @aclements |
On the
linux-amd64-longtest
builder (https://build.golang.org/log/d032877df5968710842d285d5874a466cd80c986):I've only seen this once, so it's not clear to me whether this is an existing issue, but see previously #26393.
CC @aclements @mknyszek
The text was updated successfully, but these errors were encountered: