diff options
author | Michael Anthony Knyszek <mknyszek@google.com> | 2020-05-19 16:33:17 +0000 |
---|---|---|
committer | Michael Knyszek <mknyszek@google.com> | 2020-05-21 14:48:50 +0000 |
commit | c847589ad06a1acfcceaac7b230c0d5a826caab8 (patch) | |
tree | fac92e13da0a4e8cff561c73010c34a7fb2e9a93 /src/testing | |
parent | 39ea0ea05dcfa281dc5977410b60458f2d2adb99 (diff) | |
download | go-git-c847589ad06a1acfcceaac7b230c0d5a826caab8.tar.gz |
runtime: synchronize StartTrace and StopTrace with sysmon
Currently sysmon is not stopped when the world is stopped, which is
in general a difficult thing to do. The result of this is that when
tracing starts and the value of trace.enabled changes, it's possible
for sysmon to fail to emit an event when it really should. This leads to
traces which the execution trace parser deems inconsistent.
Fix this by putting all of sysmon's work behind a new lock sysmonlock.
StartTrace and StopTrace both acquire this lock after stopping the world
but before performing any work in order to ensure sysmon sees the
required state change in tracing. This change is expected to slow down
StartTrace and StopTrace, but will help ensure consistent traces are
generated.
Updates #29707.
Fixes #38794.
Change-Id: I64c58e7c3fd173cd5281ffc208d6db24ff6c0284
Reviewed-on: https://go-review.googlesource.com/c/go/+/234617
Run-TryBot: Michael Knyszek <mknyszek@google.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
Diffstat (limited to 'src/testing')
0 files changed, 0 insertions, 0 deletions