mirror of
https://github.com/python/cpython.git
synced 2026-06-08 19:01:13 +00:00
Avoid embedding the parent's sys.argv into the forkserver -c command
string via repr(). When sys.argv is large (e.g. thousands of file
paths from a pre-commit hook), the resulting single argument could
exceed the OS per-argument length limit (MAX_ARG_STRLEN on Linux,
typically 128 KiB), causing posix_spawn to fail and the parent to
observe a BrokenPipeError.
Instead, append the argv entries as separate command-line arguments
after -c; the forkserver child reads them back as sys.argv[1:]. This
cannot exceed any limit the parent itself did not already satisfy.
Regression introduced by gh-143706 /
|
||
|---|---|---|
| .. | ||
| dummy | ||
| __init__.py | ||
| connection.py | ||
| context.py | ||
| forkserver.py | ||
| heap.py | ||
| managers.py | ||
| pool.py | ||
| popen_fork.py | ||
| popen_forkserver.py | ||
| popen_spawn_posix.py | ||
| popen_spawn_win32.py | ||
| process.py | ||
| queues.py | ||
| reduction.py | ||
| resource_sharer.py | ||
| resource_tracker.py | ||
| shared_memory.py | ||
| sharedctypes.py | ||
| spawn.py | ||
| synchronize.py | ||
| util.py | ||