summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2024-06-03 18:07:22 (GMT)
committerGitHub <noreply@github.com>2024-06-03 18:07:22 (GMT)
commitca37034baa2909722df58c02dfd13e1d667252ce (patch)
tree97c08668ec424d132357d35ce0a80236a6981768
parent6b10467fbc0b67bf217ea27956b545103c4a0ad5 (diff)
downloadcpython-ca37034baa2909722df58c02dfd13e1d667252ce.zip
cpython-ca37034baa2909722df58c02dfd13e1d667252ce.tar.gz
cpython-ca37034baa2909722df58c02dfd13e1d667252ce.tar.bz2
[3.13] gh-117657: Avoid `sem_clockwait` in TSAN (GH-119915) (#119992)
The `sem_clockwait` function is not currently instrumented, which leads to false positives. (cherry picked from commit 41c1cefbae71d687d1a935233b086473df65e15c) Co-authored-by: Sam Gross <colesbury@gmail.com>
-rw-r--r--Python/parking_lot.c2
-rw-r--r--Tools/tsan/suppressions_free_threading.txt9
2 files changed, 1 insertions, 10 deletions
diff --git a/Python/parking_lot.c b/Python/parking_lot.c
index e2def9e..841b1d7 100644
--- a/Python/parking_lot.c
+++ b/Python/parking_lot.c
@@ -119,7 +119,7 @@ _PySemaphore_PlatformWait(_PySemaphore *sema, PyTime_t timeout)
if (timeout >= 0) {
struct timespec ts;
-#if defined(CLOCK_MONOTONIC) && defined(HAVE_SEM_CLOCKWAIT)
+#if defined(CLOCK_MONOTONIC) && defined(HAVE_SEM_CLOCKWAIT) && !defined(_Py_THREAD_SANITIZER)
PyTime_t now;
// silently ignore error: cannot report error to the caller
(void)PyTime_MonotonicRaw(&now);
diff --git a/Tools/tsan/suppressions_free_threading.txt b/Tools/tsan/suppressions_free_threading.txt
index 60839e6..d150e90 100644
--- a/Tools/tsan/suppressions_free_threading.txt
+++ b/Tools/tsan/suppressions_free_threading.txt
@@ -15,14 +15,10 @@ race:set_allocator_unlocked
# These entries are for warnings that trigger in a library function, as called
# by a CPython function.
-# https://gist.github.com/swtaarrs/9d41251e603fa6dedd604191a6da820d
-race:park_detached_threads
# https://gist.github.com/swtaarrs/8e0e365e1d9cecece3269a2fb2f2b8b8
race:sock_recv_impl
# https://gist.github.com/swtaarrs/08dfe7883b4c975c31ecb39388987a67
race:free_threadstate
-# https://gist.github.com/swtaarrs/cd6aec2006e0c1b561b68d65e9f1a872
-race:_PyParkingLot_Park
# These warnings trigger directly in a CPython function.
@@ -33,8 +29,6 @@ race_top:_mi_heap_delayed_free_partial
race_top:_PyEval_EvalFrameDefault
race_top:_PyImport_AcquireLock
race_top:_PyImport_ReleaseLock
-# https://gist.github.com/mpage/0a24eb2dd458441ededb498e9b0e5de8
-race_top:_PyParkingLot_Park
race_top:_PyType_HasFeature
race_top:assign_version_tag
race_top:insertdict
@@ -47,8 +41,6 @@ race_top:set_contains_key
# https://gist.github.com/colesbury/d13d033f413b4ad07929d044bed86c35
race_top:set_discard_entry
race_top:set_inheritable
-race_top:start_the_world
-race_top:tstate_set_detached
race_top:Py_SET_TYPE
race_top:_PyDict_CheckConsistency
race_top:_PyImport_AcquireLock
@@ -65,7 +57,6 @@ race_top:list_get_item_ref
race_top:make_pending_calls
race_top:set_add_entry
race_top:should_intern_string
-race_top:llist_insert_tail
race_top:_Py_slot_tp_getattr_hook
race_top:add_threadstate
race_top:dump_traceback