]> Cypherpunks repositories - gostls13.git/commit
runtime: acquire stack lock in traceEvent
authorAustin Clements <austin@google.com>
Tue, 26 Jan 2016 22:26:55 +0000 (17:26 -0500)
committerRuss Cox <rsc@golang.org>
Wed, 27 Jan 2016 02:22:09 +0000 (02:22 +0000)
commit08594ac7c7e123d4aa46f60690da0a7e4034f4e9
treef5388c6c0baaaac714e08c2078e2304ecf0b201b
parenteb3b1830b01fca572fcdd9c95aeb8090e6c09497
runtime: acquire stack lock in traceEvent

traceEvent records system call events after a G has already entered
_Gsyscall, which means the garbage collector could be installing stack
barriers in the G's stack during the traceEvent. If traceEvent
attempts to capture the user stack during this, it may observe a
inconsistent stack barriers and panic. Fix this by acquiring the stack
lock around the stack walk in traceEvent.

Fixes #14101.

Change-Id: I15f0ab0c70c04c6e182221f65a6f761c5a896459
Reviewed-on: https://go-review.googlesource.com/18973
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Russ Cox <rsc@golang.org>
src/runtime/trace.go