]> Cypherpunks repositories - gostls13.git/commitdiff
internal/trace: pass GOTRACEBACK=crash to testprogs
authorMichael Anthony Knyszek <mknyszek@google.com>
Mon, 9 Jun 2025 22:54:54 +0000 (22:54 +0000)
committerMichael Knyszek <mknyszek@google.com>
Tue, 10 Jun 2025 18:31:20 +0000 (11:31 -0700)
The failures in #70310 are hard to decipher. The cases where the lock is
being held either don't really make sense (the STW failures) or the
goroutine that fails is 'running on another thread' and we don't get a
stack trace. In fact, such a goroutine exists even in the STW cases.
Since reproducing this is going to be hard (very few failures over a 2
year span) let's set GOTRACEBACK=crash for these testprogs so next time
it happens we can see why.

For #70310.

Change-Id: I81a780aa82b173d42973f06911cb243f33352be1
Reviewed-on: https://go-review.googlesource.com/c/go/+/680476
Reviewed-by: Michael Pratt <mpratt@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Carlos Amedee <carlos@golang.org>
src/internal/trace/trace_test.go

index 0aa297d7625814846586d0e47abb56b3aecdde98..7eb50d0f4eafc524f2f01d7ddabeb80c630c369a 100644 (file)
@@ -600,6 +600,10 @@ func testTraceProg(t *testing.T, progName string, extra func(t *testing.T, trace
                        godebug += "," + extraGODEBUG
                }
                cmd.Env = append(cmd.Env, "GODEBUG="+godebug)
+               if _, ok := os.LookupEnv("GOTRACEBACK"); !ok {
+                       // Unless overriden, set GOTRACEBACK=crash.
+                       cmd.Env = append(cmd.Env, "GOTRACEBACK=crash")
+               }
 
                // Capture stdout and stderr.
                //