From: Heschi Kreinick Date: Wed, 22 Feb 2017 22:58:31 +0000 (-0500) Subject: cmd/trace: traces may end with pending mark assists X-Git-Tag: go1.9beta1~1341 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=4de2efe927e3c71798dc55f7b029a8476b756a45;p=gostls13.git cmd/trace: traces may end with pending mark assists There's no guarantee that all in-progress mark assists will finish before the trace does. Don't crash if that happens. I haven't added a test because there's quite a bit of ceremony involved and the bug is fairly straightforward. Change-Id: Ia1369a8e2260fc6a328ad204a1eab1063d2e2c90 Reviewed-on: https://go-review.googlesource.com/37540 Reviewed-by: Austin Clements Run-TryBot: Austin Clements TryBot-Result: Gobot Gobot --- diff --git a/src/cmd/trace/trace.go b/src/cmd/trace/trace.go index 0b80d94f7d..72cab90de0 100644 --- a/src/cmd/trace/trace.go +++ b/src/cmd/trace/trace.go @@ -475,7 +475,7 @@ func generateTrace(params *traceParams) (ViewerData, error) { goFinish := getGInfo(ev.G).start.Link fakeMarkStart := *ev text := "MARK ASSIST" - if markFinish.Ts > goFinish.Ts { + if markFinish == nil || markFinish.Ts > goFinish.Ts { fakeMarkStart.Link = goFinish text = "MARK ASSIST (unfinished)" } @@ -496,7 +496,7 @@ func generateTrace(params *traceParams) (ViewerData, error) { goFinish := ev.Link fakeMarkStart := *ev text := "MARK ASSIST (resumed, unfinished)" - if markFinish.Ts < goFinish.Ts { + if markFinish != nil && markFinish.Ts < goFinish.Ts { fakeMarkStart.Link = markFinish text = "MARK ASSIST (resumed)" }