-
Notifications
You must be signed in to change notification settings - Fork 18k
misc/cgo/test: Test9400 in TestCrossPackageTests hangs on ppc64le #49695
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
Comments
Change https://golang.org/cl/365836 mentions this issue: |
Change https://golang.org/cl/367874 mentions this issue: |
As suggested by #49680, a GC could be in-progress when we disable GC. Force a GC after we pause to ensure we don't hang in this case. For #49695 Change-Id: I4fc4c06ef2ac174217c3dcf7d58c7669226e2d24 Reviewed-on: https://go-review.googlesource.com/c/go/+/367874 Run-TryBot: Paul Murphy <[email protected]> TryBot-Result: Go Bot <[email protected]> Reviewed-by: Ian Lance Taylor <[email protected]> Trust: Paul Murphy <[email protected]>
Update on the root cause here: the fixes for #49680, #49695, and #45867 all assumed that |
Change https://golang.org/cl/369815 mentions this issue: |
Fixes for #49680, #49695, #45867, and #49370 all assumed that SetGCPercent(-1) doesn't block until the GC's mark phase is done, but it actually does. The cause of 3 of those 4 failures comes from the fact that at the beginning of the sweep phase, the GC does try to preempt every P once, and this may run concurrently with test code. In the fourth case, the issue was likely that only *one* of the debug_test.go tests was missing a call to SetGCPercent(-1). Just to be safe, leave a TODO there for now to remove the extraneous runtime.GC calls, but leave the calls in. Updates #49680, #49695, #45867, and #49370. Change-Id: Ibf4e64addfba18312526968bcf40f1f5d54eb3f1 Reviewed-on: https://go-review.googlesource.com/c/go/+/369815 Reviewed-by: Austin Clements <[email protected]> Trust: Michael Knyszek <[email protected]> Run-TryBot: Michael Knyszek <[email protected]> TryBot-Result: Gopher Robot <[email protected]>
While trying to reproduce some sporadic failures on seen on the ppc64le CI machines, I came across a hang in Test9400 on a POWER10 machine with GOMAXPROCS=2.
What version of Go are you using (
go version
)?What did you do?
cd $GOPATH/misc/cgo/test
go test -buildmode=pie -ldflags=-linkmode=internal -tags=internal,internal_pie -c
export GOMAXPROCS=2
while [ 1 ]; do ./test.test -test.v -test.short ; done
Eventually this hangs on TestCrossPackageTests running Test9400.
This kind of looks like it may be an untimely GC starting while
issue9400.RewindAndSetgid
is spinning on a condition.I inserted a call to
runtime.GC
prior to the above call, and was unable to reproduce the hang.The text was updated successfully, but these errors were encountered: