From 4de2efe927e3c71798dc55f7b029a8476b756a45 Mon Sep 17 00:00:00 2001 From: Heschi Kreinick Date: Wed, 22 Feb 2017 17:58:31 -0500 Subject: [PATCH] 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 --- src/cmd/trace/trace.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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)" } -- 2.48.1