Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 982c73a

Browse filesBrowse files
[3.13] gh-117657: Replace TSAN suppresions with more specific rules (GH-118722) (#118870)
Using `race:` filters out warnings if the function appears anywhere in the stack trace. This can hide a lot of unrelated warnings, especially for a function like `_PyEval_EvalFrameDefault`, which is somewhere on the stack more often than not. Change all free-threaded suppressions to `race_top:`, which only matches the top frame, and add any new suppressions this exposes. (cherry picked from commit 98ff3f6) Co-authored-by: Brett Simmers <swtaarrs@users.noreply.github.com>
1 parent d4c6948 commit 982c73a
Copy full SHA for 982c73a

File tree

1 file changed

+81
-24
lines changed
Filter options

1 file changed

+81
-24
lines changed

‎Tools/tsan/suppressions_free_threading.txt

Copy file name to clipboardExpand all lines: Tools/tsan/suppressions_free_threading.txt
+81-24Lines changed: 81 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,31 +11,88 @@ race:set_allocator_unlocked
1111

1212
## Free-threaded suppressions
1313

14-
race:_add_to_weak_set
15-
race:_in_weak_set
16-
race:_mi_heap_delayed_free_partial
17-
race:_PyEval_EvalFrameDefault
18-
race:_PyImport_AcquireLock
19-
race:_PyImport_ReleaseLock
20-
race:_PyInterpreterState_SetNotRunningMain
21-
race:_PyInterpreterState_IsRunningMain
22-
# https://gist.github.com/mpage/0a24eb2dd458441ededb498e9b0e5de8
14+
15+
# These entries are for warnings that trigger in a library function, as called
16+
# by a CPython function.
17+
18+
# https://gist.github.com/swtaarrs/9d41251e603fa6dedd604191a6da820d
19+
race:park_detached_threads
20+
# https://gist.github.com/swtaarrs/8e0e365e1d9cecece3269a2fb2f2b8b8
21+
race:sock_recv_impl
22+
# https://gist.github.com/swtaarrs/08dfe7883b4c975c31ecb39388987a67
23+
race:free_threadstate
24+
# https://gist.github.com/swtaarrs/cd6aec2006e0c1b561b68d65e9f1a872
2325
race:_PyParkingLot_Park
24-
race:_PyType_HasFeature
25-
race:assign_version_tag
26-
race:gc_restore_tid
27-
race:initialize_new_array
28-
race:insertdict
29-
race:lookup_tp_dict
30-
race:mi_heap_visit_pages
31-
race:PyMember_GetOne
32-
race:PyMember_SetOne
33-
race:new_reference
34-
race:set_contains_key
35-
race:set_inheritable
36-
race:start_the_world
37-
race:tstate_set_detached
38-
race:unicode_hash
26+
27+
28+
# These warnings trigger directly in a CPython function.
29+
30+
race_top:_add_to_weak_set
31+
race_top:_in_weak_set
32+
race_top:_mi_heap_delayed_free_partial
33+
race_top:_PyEval_EvalFrameDefault
34+
race_top:_PyImport_AcquireLock
35+
race_top:_PyImport_ReleaseLock
36+
race_top:_PyInterpreterState_SetNotRunningMain
37+
race_top:_PyInterpreterState_IsRunningMain
38+
# https://gist.github.com/mpage/0a24eb2dd458441ededb498e9b0e5de8
39+
race_top:_PyParkingLot_Park
40+
race_top:_PyType_HasFeature
41+
race_top:assign_version_tag
42+
race_top:gc_restore_tid
43+
race_top:initialize_new_array
44+
race_top:insertdict
45+
race_top:lookup_tp_dict
46+
race_top:mi_heap_visit_pages
47+
race_top:PyMember_GetOne
48+
race_top:PyMember_SetOne
49+
race_top:new_reference
50+
race_top:set_contains_key
51+
race_top:set_inheritable
52+
race_top:start_the_world
53+
race_top:tstate_set_detached
54+
race_top:unicode_hash
55+
race_top:Py_SET_TYPE
56+
race_top:_PyDict_CheckConsistency
57+
race_top:_PyImport_AcquireLock
58+
race_top:_Py_dict_lookup_threadsafe
59+
race_top:_imp_release_lock
60+
race_top:_multiprocessing_SemLock_acquire_impl
61+
race_top:builtin_compile_impl
62+
race_top:count_next
63+
race_top:dictiter_new
64+
race_top:dictresize
65+
race_top:insert_to_emptydict
66+
race_top:insertdict
67+
race_top:list_get_item_ref
68+
race_top:make_pending_calls
69+
race_top:set_add_entry
70+
race_top:should_intern_string
71+
race_top:worklist_pop
72+
race_top:_PyEval_IsGILEnabled
73+
race_top:llist_insert_tail
74+
race_top:_Py_slot_tp_getattr_hook
75+
race_top:add_threadstate
76+
race_top:dump_traceback
77+
race_top:fatal_error
78+
race_top:mi_page_decode_padding
79+
race_top:_multiprocessing_SemLock_release_impl
80+
race_top:_PyFrame_GetCode
81+
race_top:_PyFrame_Initialize
82+
race_top:PyInterpreterState_ThreadHead
83+
race_top:_PyObject_TryGetInstanceAttribute
84+
race_top:_Py_qsbr_unregister
85+
race_top:_Py_qsbr_poll
86+
race_top:PyThreadState_Next
87+
race_top:Py_TYPE
88+
race_top:PyUnstable_InterpreterFrame_GetLine
89+
race_top:sock_close
90+
race_top:tstate_delete_common
91+
race_top:tstate_is_freed
92+
race_top:type_modified_unlocked
93+
race_top:update_refs
94+
race_top:write_thread_id
95+
race_top:PyThreadState_Clear
3996

4097
# https://gist.github.com/mpage/6962e8870606cfc960e159b407a0cb40
4198
thread:pthread_create

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.