mirror of
https://github.com/golang/go
synced 2024-11-17 02:24:42 -07:00
internal/trace/v2: dump text trace on failure only if it fits in the log
Currently we dump text traces to the build log on failure unconditionally, but this may cause the old infrastructure's builds' logs to get truncated. Avoid that by setting a threshold on the maximum size of the text trace we're willing to dump. We don't need this workaround on the new infrastructure -- logs don't get truncated there. Change-Id: I0f50f50bb4b90f87250b673fbe56f48235325610 Reviewed-on: https://go-review.googlesource.com/c/go/+/544216 Auto-Submit: Michael Knyszek <mknyszek@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Michael Pratt <mpratt@google.com>
This commit is contained in:
parent
e6b76bfc46
commit
ff722e607c
@ -526,6 +526,7 @@ func testTraceProg(t *testing.T, progName string, extra func(t *testing.T, trace
|
||||
|
||||
// Check if we're on a builder.
|
||||
onBuilder := testenv.Builder() != ""
|
||||
onOldBuilder := !strings.Contains(testenv.Builder(), "gotip") && !strings.Contains(testenv.Builder(), "go1")
|
||||
|
||||
testPath := filepath.Join("./testdata/testprog", progName)
|
||||
testName := progName
|
||||
@ -567,7 +568,18 @@ func testTraceProg(t *testing.T, progName string, extra func(t *testing.T, trace
|
||||
// data is critical for debugging and this is the only way
|
||||
// we can currently make sure it's retained.
|
||||
t.Log("found bad trace; dumping to test log...")
|
||||
t.Log(dumpTraceToText(t, tb))
|
||||
s := dumpTraceToText(t, tb)
|
||||
if onOldBuilder && len(s) > 1<<20+512<<10 {
|
||||
// The old build infrastructure truncates logs at ~2 MiB.
|
||||
// Let's assume we're the only failure and give ourselves
|
||||
// up to 1.5 MiB to dump the trace.
|
||||
//
|
||||
// TODO(mknyszek): Remove this when we've migrated off of
|
||||
// the old infrastructure.
|
||||
t.Logf("text trace too large to dump (%d bytes)", len(s))
|
||||
} else {
|
||||
t.Log(s)
|
||||
}
|
||||
} else if t.Failed() || *dumpTraces {
|
||||
// We asked to dump the trace or failed. Write the trace to a file.
|
||||
t.Logf("wrote trace to file: %s", dumpTraceToFile(t, testName, stress, tb))
|
||||
|
Loading…
Reference in New Issue
Block a user