• Austin Clements's avatar
    runtime: acquire stack lock in traceEvent · 08594ac7
    Austin Clements authored
    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: default avatarRuss Cox <rsc@golang.org>
    08594ac7
trace.go 27.9 KB