mirror of
https://github.com/golang/go
synced 2024-11-13 18:50:24 -07:00
e496e612b7
cgocall could previously invoke the race detector on an M whose P had been retaken. The race detector would attempt to use the P-local state from this stale P, racing with the thread that was actually wired to that P. The result was memory corruption of ThreadSanitizer's internal data structures that presented as hard-to-understand assertion failures and segfaults. Reorder cgocall so that it always acquires a P before invoking the race detector, and add a test that stresses the interaction between cgo and the race detector to protect against future bugs of this kind. Fixes #27660. Change-Id: Ide93f96a23490314d6647547140e0a412a97f0d4 Reviewed-on: https://go-review.googlesource.com/c/148717 Run-TryBot: Dmitry Vyukov <dvyukov@google.com> Reviewed-by: Dmitry Vyukov <dvyukov@google.com> |
||
---|---|---|
.. | ||
errors | ||
fortran | ||
gmp | ||
life | ||
nocgo | ||
stdio | ||
test | ||
testasan | ||
testcarchive | ||
testcshared | ||
testgodefs | ||
testplugin | ||
testsanitizers | ||
testshared | ||
testsigfwd | ||
testso | ||
testsovar | ||
testtls |