components/golang/patches/0047-release-branch.go1.5-runtime-fix-new-stack-barrier-c.patch
author Shawn Walker-Salas <shawn.walker@oracle.com>
Thu, 21 Jan 2016 09:20:59 -0800
changeset 5331 9c955076ffe3
permissions -rw-r--r--
PSARC/2015/203 Google Go version 1.5 21480408 sample-manifest COMPONENT_VERSION transforms cause erroneous results 22297561 we should add Go to userland

From 7ab4cba9ad76f8853f11de1a72ff1db790c5ea61 Mon Sep 17 00:00:00 2001
From: Russ Cox <[email protected]>
Date: Fri, 20 Nov 2015 14:02:33 -0500
Subject: [PATCH 47/63] [release-branch.go1.5] runtime: fix new stack barrier
 check

During a crash showing goroutine stacks of all threads
(with GOTRACEBACK=crash), it can be that f == nil.

Only happens on Solaris; not sure why.

Change-Id: Iee2c394a0cf19fa0a24f6befbc70776b9e42d25a
Reviewed-on: https://go-review.googlesource.com/17110
Reviewed-by: Austin Clements <[email protected]>
Reviewed-on: https://go-review.googlesource.com/17122
Reviewed-by: Russ Cox <[email protected]>
---
 src/runtime/traceback.go | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/runtime/traceback.go b/src/runtime/traceback.go
index aed6cbd..8f27ba4 100644
--- a/src/runtime/traceback.go
+++ b/src/runtime/traceback.go
@@ -188,7 +188,7 @@ func gentraceback(pc0, sp0, lr0 uintptr, gp *g, skip int, pcbuf *uintptr, max in
 	}
 
 	f := findfunc(frame.pc)
-	if f.entry == stackBarrierPC {
+	if f != nil && f.entry == stackBarrierPC {
 		// We got caught in the middle of a stack barrier
 		// (presumably by a signal), so stkbar may be
 		// inconsistent with the barriers on the stack.
-- 
2.6.1