GeezerVison is showing github.com — test_importlib test_multiprocessing_pool_circular_import() fails randomly on Thread sanitizer (free-threading) on GitHub Actions · Issue #125221 · python/cpython
test_importlib test_multiprocessing_pool_circular_import() fails randomly on Thread sanitizer (free-threading) on GitHub Actions #125221DescriptionExample: https://github.com/python/cpython/actions/runs/11263361511/job/31321078076?pr=125219
0:01:54 load avg: 4.86 [ 9/22/1] test_importlib failed (1 failure) (1 min 35 sec) -- running (2): test_io (1 min 20 sec), test_queue (1 min 3 sec)
test test_importlib failed -- Traceback (most recent call last):
File "/home/runner/work/cpython/cpython/Lib/test/test_importlib/test_threaded_import.py", line 255, in test_multiprocessing_pool_circular_import
script_helper.assert_python_ok(fn)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^
File "/home/runner/work/cpython/cpython/Lib/test/support/script_helper.py", line 182, in assert_python_ok
return _assert_python(True, *args, **env_vars)
File "/home/runner/work/cpython/cpython/Lib/test/support/script_helper.py", line 167, in _assert_python
res.fail(cmd_line)
~~~~~~~~^^^^^^^^^^
File "/home/runner/work/cpython/cpython/Lib/test/support/script_helper.py", line 80, in fail
raise AssertionError(f"Process return code is {exitcode}\n"
...<10 lines>...
f"---")
AssertionError: Process return code is 66
command line: ['/home/runner/work/cpython/cpython/python', '-X', 'faulthandler', '-I', '/home/runner/work/cpython/cpython/Lib/test/test_importlib/partial/pool_in_threads.py']
stdout:
---
---
stderr:
---
---
Linked PRs
Activitychanged the title [-]test_importlib test_multiprocessing_pool_circular_import() fails on Thread sanitizer (free-threading) on GitHub Actions[/-] [+]test_importlib test_multiprocessing_pool_circular_import() fails randomly on Thread sanitizer (free-threading) on GitHub Actions[/+] on Oct 9, 2024colesbury commented on Oct 9, 2024 Looks like a data race on objreduce:
|
#define objreduce \ |
|
(_Py_INTERP_CACHED_OBJECT(_PyInterpreterState_GET(), objreduce)) |
|
PyObject *reduce, *res; |
|
|
|
if (objreduce == NULL) { |
|
PyObject *dict = lookup_tp_dict(&PyBaseObject_Type); |
|
objreduce = PyDict_GetItemWithError(dict, &_Py_ID(__reduce__)); |
|
if (objreduce == NULL && PyErr_Occurred()) { |
|
return NULL; |
|
} |
|
} |
vstinner commented on Oct 11, 2024
MetadataMetadataDevelopmentNo branches or pull requestsIssue actions
|