mirror of
https://github.com/python/cpython.git
synced 2025-12-31 04:23:37 +00:00
[3.11] gh-105912: document gotcha with using os.fork on macOS (GH-112871) (#113135)
* gh-105912: document gotcha with using os.fork on macOS
Using ``fork(2)`` on macOS when also using higher-level
system APIs in the parent proces can crash on macOS because
those system APIs are not written to handle this usage
pattern.
There's nothing we can do about this other than documenting
the problem.
(cherry picked from commit 22511f77c2)
Co-authored-by: Carol Willing <carolcode@willingconsulting.com>
This commit is contained in:
parent
2be7a7296f
commit
11401e2c79
3 changed files with 21 additions and 0 deletions
|
|
@ -3928,6 +3928,11 @@ written in Python, such as a mail server's external command delivery program.
|
|||
|
||||
.. audit-event:: os.fork "" os.fork
|
||||
|
||||
.. warning::
|
||||
|
||||
On macOS the use of this function is unsafe when mixed with using
|
||||
higher-level system APIs, and that includes using :mod:`urllib.request`.
|
||||
|
||||
.. versionchanged:: 3.8
|
||||
Calling ``fork()`` in a subinterpreter is no longer supported
|
||||
(:exc:`RuntimeError` is raised).
|
||||
|
|
@ -3949,6 +3954,11 @@ written in Python, such as a mail server's external command delivery program.
|
|||
|
||||
.. audit-event:: os.forkpty "" os.forkpty
|
||||
|
||||
.. warning::
|
||||
|
||||
On macOS the use of this function is unsafe when mixed with using
|
||||
higher-level system APIs, and that includes using :mod:`urllib.request`.
|
||||
|
||||
.. versionchanged:: 3.8
|
||||
Calling ``forkpty()`` in a subinterpreter is no longer supported
|
||||
(:exc:`RuntimeError` is raised).
|
||||
|
|
|
|||
|
|
@ -33,6 +33,9 @@ The :mod:`pty` module defines the following functions:
|
|||
file descriptor connected to the child's controlling terminal (and also to the
|
||||
child's standard input and output).
|
||||
|
||||
.. warning:: On macOS the use of this function is unsafe when mixed with using
|
||||
higher-level system APIs, and that includes using :mod:`urllib.request`.
|
||||
|
||||
|
||||
.. function:: openpty()
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,14 @@ authentication, redirections, cookies and more.
|
|||
The `Requests package <https://requests.readthedocs.io/en/master/>`_
|
||||
is recommended for a higher-level HTTP client interface.
|
||||
|
||||
.. warning::
|
||||
|
||||
On macOS it is unsafe to use this module in programs using
|
||||
:func:`os.fork` because the :func:`getproxies` implementation for
|
||||
macOS uses a higher-level system API. Set the environment variable
|
||||
``no_proxy`` to ``*`` to avoid this problem
|
||||
(e.g. ``os.environ["no_proxy"] = "*"``).
|
||||
|
||||
.. include:: ../includes/wasm-notavail.rst
|
||||
|
||||
The :mod:`urllib.request` module defines the following functions:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue