https://github.com/python/cpython/commit/17ac3933c3c860e08f7963cf270116a39a063be7
commit: 17ac3933c3c860e08f7963cf270116a39a063be7
branch: main
author: Sam Gross <[email protected]>
committer: colesbury <[email protected]>
date: 2025-06-18T14:24:05-04:00
summary:
gh-135641: Fix flaky `test_capi.test_lock_two_threads` test case (gh-135642)
The mutex may have the `_Py_HAS_PARKED` bit set.
files:
M Modules/_testinternalcapi/test_lock.c
diff --git a/Modules/_testinternalcapi/test_lock.c
b/Modules/_testinternalcapi/test_lock.c
index 8d678412fe7179..8d8cb992b0e07f 100644
--- a/Modules/_testinternalcapi/test_lock.c
+++ b/Modules/_testinternalcapi/test_lock.c
@@ -57,7 +57,10 @@ lock_thread(void *arg)
_Py_atomic_store_int(&test_data->started, 1);
PyMutex_Lock(m);
- assert(m->_bits == 1);
+ // gh-135641: in rare cases the lock may still have `_Py_HAS_PARKED` set
+ // (m->_bits == 3) due to bucket collisions in the parking lot hash table
+ // between this mutex and the `test_data.done` event.
+ assert(m->_bits == 1 || m->_bits == 3);
PyMutex_Unlock(m);
assert(m->_bits == 0);
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]