]> Cypherpunks.ru repositories - gostls13.git/commitdiff
misc/cgo/test: reduce likeliness of hang in Test9400
authorPaul E. Murphy <murp@ibm.com>
Fri, 19 Nov 2021 22:33:42 +0000 (16:33 -0600)
committerPaul Murphy <murp@ibm.com>
Tue, 30 Nov 2021 15:28:46 +0000 (15:28 +0000)
If a GC triggers while spinning in RewindAndSetgid, it may result in
this test hanging. Avoid it by disabling the collector before entering
the uninterruptable ASM conditional wait.

Fixes #49695

Change-Id: Ie0a03653481fb746f862469361b7840f4bfa8b67
Reviewed-on: https://go-review.googlesource.com/c/go/+/365836
Run-TryBot: Paul Murphy <murp@ibm.com>
TryBot-Result: Go Bot <gobot@golang.org>
Trust: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
misc/cgo/test/testdata/issue9400_linux.go

index e94a9bb45f5def7cf41e7a6f3d0ae05c45037726..f521b1f49a5e6ae851cc657d0a1233e99c5138b8 100644 (file)
@@ -15,6 +15,7 @@ import "C"
 
 import (
        "runtime"
+       "runtime/debug"
        "sync/atomic"
        "testing"
 
@@ -46,6 +47,10 @@ func test9400(t *testing.T) {
                big[i] = pattern
        }
 
+       // Disable GC for the duration of the test.
+       // This avoids a potential GC deadlock when spinning in uninterruptable ASM below #49695.
+       defer debug.SetGCPercent(debug.SetGCPercent(-1))
+
        // Temporarily rewind the stack and trigger SIGSETXID
        issue9400.RewindAndSetgid()