From 4a392cf3fb4b9c0bd0d354449bd864ed44cce766 Mon Sep 17 00:00:00 2001 From: Brett Simmers Date: Mon, 6 May 2024 16:46:00 -0700 Subject: [PATCH 1/5] Replace TSAN suppressions with more specific rules --- Tools/tsan/suppressions_free_threading.txt | 75 ++++++++++++++-------- 1 file changed, 48 insertions(+), 27 deletions(-) diff --git a/Tools/tsan/suppressions_free_threading.txt b/Tools/tsan/suppressions_free_threading.txt index 74dbf4bb1cb688..42dc82dddcfb1a 100644 --- a/Tools/tsan/suppressions_free_threading.txt +++ b/Tools/tsan/suppressions_free_threading.txt @@ -11,34 +11,55 @@ race:set_allocator_unlocked ## Free-threaded suppressions -race:_add_to_weak_set -race:_in_weak_set -race:_mi_heap_delayed_free_partial -race:_PyEval_EvalFrameDefault -race:_PyImport_AcquireLock -race:_PyImport_ReleaseLock -race:_PyInterpreterState_SetNotRunningMain -race:_PyInterpreterState_IsRunningMain -race:_PyObject_GC_IS_SHARED -race:_PyObject_GC_SET_SHARED -race:_PyObject_GC_TRACK +race_top:_add_to_weak_set +race_top:_in_weak_set +race_top:_mi_heap_delayed_free_partial +race_top:_PyEval_EvalFrameDefault +race_top:_PyImport_AcquireLock +race_top:_PyImport_ReleaseLock +race_top:_PyInterpreterState_SetNotRunningMain +race_top:_PyInterpreterState_IsRunningMain +race_top:_PyObject_GC_IS_SHARED +race_top:_PyObject_GC_SET_SHARED +race_top:_PyObject_GC_TRACK # https://gist.github.com/mpage/0a24eb2dd458441ededb498e9b0e5de8 -race:_PyParkingLot_Park -race:_PyType_HasFeature -race:assign_version_tag -race:gc_restore_tid -race:initialize_new_array -race:insertdict -race:lookup_tp_dict -race:mi_heap_visit_pages -race:PyMember_GetOne -race:PyMember_SetOne -race:new_reference -race:set_contains_key -race:set_inheritable -race:start_the_world -race:tstate_set_detached -race:unicode_hash +race_top:_PyParkingLot_Park +race_top:_PyType_HasFeature +race_top:assign_version_tag +race_top:gc_restore_tid +race_top:initialize_new_array +race_top:insertdict +race_top:lookup_tp_dict +race_top:mi_heap_visit_pages +race_top:PyMember_GetOne +race_top:PyMember_SetOne +race_top:new_reference +race_top:set_contains_key +race_top:set_inheritable +race_top:start_the_world +race_top:tstate_set_detached +race_top:unicode_hash +race_top:Py_SET_TYPE +race_top:_PyDict_CheckConsistency +race_top:_PyImport_AcquireLock +race_top:_Py_atomic_compare_exchange_int +race_top:_Py_atomic_load_uintptr_relaxed +race_top:_Py_dict_lookup_threadsafe +race_top:__tsan_memset +race_top:_imp_release_lock +race_top:_multiprocessing_SemLock_acquire_impl +race_top:builtin_compile_impl +race_top:count_next +race_top:dictiter_new +race_top:dictresize +race_top:insert_to_emptydict +race_top:insertdict +race_top:list_get_item_ref +race_top:make_pending_calls +race_top:recv +race_top:set_add_entry +race_top:should_intern_string +race_top:worklist_pop # https://gist.github.com/mpage/6962e8870606cfc960e159b407a0cb40 thread:pthread_create From 3663587ebd4806cb03f4567d7bbc60acbcb09273 Mon Sep 17 00:00:00 2001 From: Brett Simmers Date: Tue, 7 May 2024 09:53:14 -0700 Subject: [PATCH 2/5] Two more suppressions --- Tools/tsan/suppressions_free_threading.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Tools/tsan/suppressions_free_threading.txt b/Tools/tsan/suppressions_free_threading.txt index 42dc82dddcfb1a..d1729911d65224 100644 --- a/Tools/tsan/suppressions_free_threading.txt +++ b/Tools/tsan/suppressions_free_threading.txt @@ -60,6 +60,8 @@ race_top:recv race_top:set_add_entry race_top:should_intern_string race_top:worklist_pop +race_top:_PyEval_IsGILEnabled +race_top:llist_insert_tail # https://gist.github.com/mpage/6962e8870606cfc960e159b407a0cb40 thread:pthread_create From 9f121792de6927c5ff85d45b8bb322c34063b570 Mon Sep 17 00:00:00 2001 From: Brett Simmers Date: Tue, 7 May 2024 10:09:00 -0700 Subject: [PATCH 3/5] One more --- Tools/tsan/suppressions_free_threading.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Tools/tsan/suppressions_free_threading.txt b/Tools/tsan/suppressions_free_threading.txt index d1729911d65224..0ef628aef40722 100644 --- a/Tools/tsan/suppressions_free_threading.txt +++ b/Tools/tsan/suppressions_free_threading.txt @@ -62,6 +62,7 @@ race_top:should_intern_string race_top:worklist_pop race_top:_PyEval_IsGILEnabled race_top:llist_insert_tail +race_top:_Py_slot_tp_getattr_hook # https://gist.github.com/mpage/6962e8870606cfc960e159b407a0cb40 thread:pthread_create From 74d09a7227e48c104778af3197c8d87a0a9154e3 Mon Sep 17 00:00:00 2001 From: Brett Simmers Date: Tue, 7 May 2024 16:28:25 -0700 Subject: [PATCH 4/5] Even more, with gists for the non-top races --- Tools/tsan/suppressions_free_threading.txt | 39 +++++++++++++++++++--- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/Tools/tsan/suppressions_free_threading.txt b/Tools/tsan/suppressions_free_threading.txt index 0ef628aef40722..789eadd51284ab 100644 --- a/Tools/tsan/suppressions_free_threading.txt +++ b/Tools/tsan/suppressions_free_threading.txt @@ -11,6 +11,20 @@ race:set_allocator_unlocked ## Free-threaded suppressions + +# 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 + + +# These warnings trigger directly in a CPython function. + race_top:_add_to_weak_set race_top:_in_weak_set race_top:_mi_heap_delayed_free_partial @@ -42,10 +56,7 @@ race_top:unicode_hash race_top:Py_SET_TYPE race_top:_PyDict_CheckConsistency race_top:_PyImport_AcquireLock -race_top:_Py_atomic_compare_exchange_int -race_top:_Py_atomic_load_uintptr_relaxed race_top:_Py_dict_lookup_threadsafe -race_top:__tsan_memset race_top:_imp_release_lock race_top:_multiprocessing_SemLock_acquire_impl race_top:builtin_compile_impl @@ -56,13 +67,33 @@ race_top:insert_to_emptydict race_top:insertdict race_top:list_get_item_ref race_top:make_pending_calls -race_top:recv race_top:set_add_entry race_top:should_intern_string race_top:worklist_pop race_top:_PyEval_IsGILEnabled race_top:llist_insert_tail race_top:_Py_slot_tp_getattr_hook +race_top:add_threadstate +race_top:dump_traceback +race_top:fatal_error +race_top:mi_page_decode_padding +race_top:_multiprocessing_SemLock_release_impl +race_top:_PyFrame_GetCode +race_top:_PyFrame_Initialize +race_top:PyInterpreterState_ThreadHead +race_top:_PyObject_TryGetInstanceAttribute +race_top:_Py_qsbr_unregister +race_top:_Py_qsbr_poll +race_top:PyThreadState_Next +race_top:Py_TYPE +race_top:PyUnstable_InterpreterFrame_GetLine +race_top:sock_close +race_top:tstate_delete_common +race_top:tstate_is_freed +race_top:type_modified_unlocked +race_top:update_refs +race_top:write_thread_id +race_top:PyThreadState_Clear # https://gist.github.com/mpage/6962e8870606cfc960e159b407a0cb40 thread:pthread_create From 1c67a79958ff2b60e34aa92ca8494fc6f0a8742e Mon Sep 17 00:00:00 2001 From: Brett Simmers Date: Wed, 8 May 2024 13:27:21 -0700 Subject: [PATCH 5/5] Add _PyParkingLot_Park --- Tools/tsan/suppressions_free_threading.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Tools/tsan/suppressions_free_threading.txt b/Tools/tsan/suppressions_free_threading.txt index 789eadd51284ab..b91b19c2103142 100644 --- a/Tools/tsan/suppressions_free_threading.txt +++ b/Tools/tsan/suppressions_free_threading.txt @@ -21,6 +21,8 @@ race:park_detached_threads 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. pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy