12 Commits
Author SHA1 Message Date
Jeong, YunWon f1b8b09492 Don't hold socket locks across blocking I/O (#8746)
accept/recv/send kept the socket RwLock during the syscall. After
fork, the child copied that held lock, so _ResourceSharer._afterfork
hung in listener.close().

Unskip fork connection pickling, pool task ref release, and spawn
thread-pool terminate. Add extra_tests for fork+accept close and
fork after DupFd.

Assisted-by: Grok:4.6
2026-09-20 10:34:09 +09:00
Jeong, YunWon 7f610e593f Fix ctypes from_buffer writes and unskip passing MP tests (#8744)
* Fix ctypes from_buffer writes and unskip passing MP tests

Write char-array .value/.raw through borrowed buffers instead of
Cow::to_mut(), which copied shared memory into a private buffer.

Unskip connection pickling, sharedctypes, Condition notify, and
concurrent.futures interpreter-shutdown tests. Cover forkserver
Condition notify and shared ctypes char arrays in extra_tests.

Assisted-by: Grok:4.6

* Unskip linux RLock repr; keep fork pickling hang skip

test_repr_rlock passed on Linux spawn/fork/forkserver. Connection
pickling hangs under the fork start method, so skip it only there.

Build the apple-container image from rust:bookworm; rust:bullseye
apt indexes 404.

Assisted-by: Grok:4.6
2026-09-20 06:43:30 +09:00
Shahar Naveh 3809ab5422 impl _queue module + Update multiprocessing to 3.14.5 (#7994) 2026-06-02 00:35:17 +09:00
Jeong, YunWon 1ddb95442a Fix parking lot hash table after fork (#6963)
* Use patched parking_lot_core with fork-safe HASHTABLE reset

parking_lot_core's global HASHTABLE retains stale ThreadData after
fork(), causing segfaults when contended locks enter park(). Use the
patched version from youknowone/parking_lot (rustpython branch) which
registers a pthread_atfork handler to reset the hash table.

Unskip test_asyncio TestFork. Add Manager+fork integration test.

* Unskip fork-related flaky tests after parking_lot fix

With parking_lot_core's HASHTABLE now properly reset via
pthread_atfork, fork-related segfaults and connection errors
in multiprocessing tests should be resolved.

Remove skip/expectedFailure markers from:
- test_concurrent_futures/test_wait.py (6 tests)
- test_concurrent_futures/test_process_pool.py (1 test)
- test_multiprocessing_fork/test_manager.py (all WithManagerTest*)
- test_multiprocessing_fork/test_misc.py (5 tests)
- test_multiprocessing_fork/test_threads.py (2 tests)
- _test_multiprocessing.py (2 shared_memory tests)

Keep test_repr_rlock skipped (flaky thread start latency,
not fork-related).
2026-03-10 12:57:29 +09:00
Jeong, YunWon 1f1123db75 force_unlock_after_fork (#7186) 2026-02-20 09:53:01 +09:00
Jeong, YunWon ba8749b792 Align del behavior (#6772)
* slot_del

* refcount inc_by for atomicity

* temp patch multithreading

* apply review
2026-01-31 23:09:10 +09:00
Jeong, YunWon c06701abc8 skip test_multiprocessing_{fork,spawn}.test_threads.py (#6735) 2026-01-15 14:29:41 +09:00
Padraic Fanning 3aa6bf8696 Skip flaky tests in test.test_multiprocessing_fork.test_manager
Had to go with the nuclear option.
2026-01-10 22:10:35 -05:00
Padraic Fanning e831124a21 Skip flaky tests in test.test_multiprocessing_fork.test_misc 2026-01-10 22:10:35 -05:00
Padraic Fanning 1827af100b Skip tests that pollute the environment for some reason 2026-01-10 22:10:35 -05:00
Shahar Naveh 11b8e73566 Merge pull request #6000 from ShaharNaveh/update-mp
Update multiprocess from 3.13.5
2025-07-20 10:31:30 +09:00
CPython Developers 46410ff933 Add test_multiprocessing from CPython 3.12.3 2024-04-24 01:15:34 +09:00