mirror of
https://github.com/golang/go.git
synced 2025-05-19 14:24:46 +00:00
runtime: deflake CGO traceback tests
The CGO traceback function is called whenever CGO code is executing and a signal is received. This occurs much more frequently now SIGURG is used for preemption. Disable signal preemption to significantly increase the likelihood that a signal results in a profile sample during the test. Updates #37201 Change-Id: Icb1a33ab0754d1a74882a4ee265b4026abe30bdc Reviewed-on: https://go-review.googlesource.com/c/go/+/219417 Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
1e9665da8f
commit
a908e09a34
@ -275,7 +275,13 @@ func testCgoPprof(t *testing.T, buildArg, runArg, top, bottom string) {
|
|||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
got, err := testenv.CleanCmdEnv(exec.Command(exe, runArg)).CombinedOutput()
|
// pprofCgoTraceback is called whenever CGO code is executing and a signal
|
||||||
|
// is received. Disable signal preemption to increase the likelihood at
|
||||||
|
// least one SIGPROF signal fired to capture a sample. See issue #37201.
|
||||||
|
cmd := testenv.CleanCmdEnv(exec.Command(exe, runArg))
|
||||||
|
cmd.Env = append(cmd.Env, "GODEBUG=asyncpreemptoff=1")
|
||||||
|
|
||||||
|
got, err := cmd.CombinedOutput()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if testenv.Builder() == "linux-amd64-alpine" {
|
if testenv.Builder() == "linux-amd64-alpine" {
|
||||||
// See Issue 18243 and Issue 19938.
|
// See Issue 18243 and Issue 19938.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user