Miss Islington (bot)
b90c68586e
bpo-32777: Fix _Py_set_inheritable async-safety in subprocess (GH-5560) (GH-5563)
...
Fix a rare but potential pre-exec child process deadlock in subprocess on POSIX systems when marking file descriptors inheritable on exec in the child process. This bug appears to have been introduced in 3.4 with the inheritable file descriptors support.
This also changes Python/fileutils.c `set_inheritable` to use the "slow" two `fcntl` syscall path instead of the "fast" single `ioctl` syscall path when asked to be async signal safe (by way of being asked not to raise exceptions). `ioctl` is not a POSIX async-signal-safe approved function.
ref: http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html
(cherry picked from commit c1e46e94de
)
Co-authored-by: Alexey Izbyshev <izbyshev@users.noreply.github.com>
2018-02-05 22:51:10 -08:00
Serhiy Storchaka
e254617262
[3.6] bpo-30065: Fixed arguments validation in _posixsubprocess.fork_exec(). (GH-1110) ( #1186 )
...
(cherry picked from commit 66bffd1
)
2017-04-19 23:59:02 +03:00
Serhiy Storchaka
9574e0adf2
Issue #20947 : Fixed a gcc warning with -Wstrict-overflow.
2016-09-27 22:04:45 +03:00
Serhiy Storchaka
5ae4f49f4a
Issue #20947 : Fixed a gcc warning with -Wstrict-overflow.
2016-09-27 22:03:51 +03:00
Xavier de Gaye
c716f183f8
Issue #26862 : SYS_getdents64 does not need to be defined on android API 21.
2016-06-15 11:35:29 +02:00
Serhiy Storchaka
ef1585eb9a
Issue #25923 : Added more const qualifiers to signatures of static and private functions.
2015-12-25 20:01:53 +02:00
Martin Panter
6a77c2d978
Issue #25764 : Merge subprocess fix from 3.4 into 3.5
2015-12-05 02:03:42 +00:00
Martin Panter
afdd51343c
Issue #25764 : Preserve subprocess fork exception when preexec_fn used
...
Also fix handling of failure to release the import lock.
2015-11-30 02:21:41 +00:00
Gregory P. Smith
d0a5b1c343
Fixes #23564 : Fix a partially broken sanity check in the _posixsubprocess
...
internals regarding how fds_to_pass were passed to the child. The bug
had no actual impact as subprocess.py already avoided it.
2015-11-15 21:15:26 -08:00
Victor Stinner
bc5b80bac1
Close #24784 : Fix compilation without thread support
...
Add "#ifdef WITH_THREAD" around cals to:
* PyGILState_Check()
* _PyImport_AcquireLock()
* _PyImport_ReleaseLock()
2015-10-11 09:54:42 +02:00
Gregory P. Smith
9afe8a3306
Fix computation of max_fd on OpenBSD. Issue #23852 .
2015-04-25 23:44:02 -07:00
Gregory P. Smith
f9681776c9
Fix computation of max_fd on OpenBSD. Issue #23852 .
2015-04-25 23:43:34 -07:00
Gregory P. Smith
4dff6f6fa6
Issue9951: update _hashopenssl and md5module to use _Py_strhex().
...
Also update _posixsubprocess to use Py_hexdigits instead of its own constant.
2015-04-25 23:42:38 +00:00
Victor Stinner
33f96f1800
Merge 3.4 (_posixsubprocess)
2015-04-02 16:25:01 +02:00
Victor Stinner
e7c749238e
Issue #23851 : close() must not be retried when it fails with EINTR
...
See the PEP 475 for the rationale.
2015-04-02 16:24:46 +02:00
Victor Stinner
185fd33a17
Issue #23836 : Use _Py_write_noraise() to retry on EINTR in child_exec() of
...
_posixsubprocess
2015-04-01 18:35:53 +02:00
Victor Stinner
160e819a1d
Issue #23694 : Fix usage of _Py_open() in the _posixsubprocess module
...
Don't call _Py_open() from _close_open_fds_safe() because it is call just after
fork(). It's not good to play with locks (the GIL) between fork() and exec().
Use instead _Py_open_noraise() which doesn't touch to the GIL.
2015-03-30 02:18:31 +02:00
Victor Stinner
a555cfcb73
Issue #23694 : Enhance _Py_open(), it now raises exceptions
...
* _Py_open() now raises exceptions on error. If open() fails, it raises an
OSError with the filename.
* _Py_open() now releases the GIL while calling open()
* Add _Py_open_noraise() when _Py_open() cannot be used because the GIL is not
held
2015-03-18 00:22:14 +01:00
Victor Stinner
8f437aac06
Issue #22290 : Fix error handling in the _posixsubprocess module.
...
* Don't call the garbage collector with an exception set: it causes an
assertion to fail in debug mode.
* Enhance also error handling if allocating an array for the executable list
failed.
* Add an unit test for 4 different errors in the _posixsubprocess module.
2014-10-05 17:25:19 +02:00
Gregory P. Smith
a26987a0a5
Fix the comment to not refer to the removed end_fd parameter.
2014-06-01 13:46:36 -07:00
Gregory P. Smith
d4dcb70287
Don't restrict ourselves to a "max" fd when closing fds before exec()
...
when we have a way to get an actual list of all open fds from the OS.
Fixes issue #21618 : The subprocess module would ignore fds that were
inherited by the calling process and already higher than POSIX resource
limits would otherwise allow. On systems with a functioning /proc/self/fd
or /dev/fd interface the max is now ignored and all fds are closed.
2014-06-01 13:18:28 -07:00
Gregory P. Smith
efeb9da4ae
Add conditional code for android's lack of definition of SYS_getdent64.
...
Fixes issue20307. No Misc/NEWS entry because frankly this is an
esoteric platform for anyone to be figuring out how to cross compile
CPython for.
2014-04-14 13:31:21 -07:00
Gregory P. Smith
54532c9742
Undo supposed fix for Issue #15798 until I understand why this is
...
causing test_multiprocessing_forkserver and test_multiprocessing_spawn
failures on head (3.4).
2013-12-01 00:13:35 -08:00
Gregory P. Smith
361e30c17a
Undo supposed fix for Issue #15798 until I understand why this is
...
causing test_multiprocessing_forkserver and test_multiprocessing_spawn
failures on head (3.4).
2013-12-01 00:12:24 -08:00
Gregory P. Smith
1c27e3c7fb
Fixes Issue #15798 - subprocess.Popen() no longer fails if file
...
descriptor 0, 1 or 2 is closed.
2013-11-30 19:04:00 -08:00
Gregory P. Smith
1eda9e7c30
Fixes Issue #15798 - subprocess.Popen() no longer fails if file
...
descriptor 0, 1 or 2 is closed.
2013-11-30 19:02:57 -08:00
Victor Stinner
daf455554b
Issue #18571 : Implementation of the PEP 446: file descriptors and file handles
...
are now created non-inheritable; add functions os.get/set_inheritable(),
os.get/set_handle_inheritable() and socket.socket.get/set_inheritable().
2013-08-28 00:53:59 +02:00
Charles-François Natali
a439b32cf0
Merge.
2013-08-25 18:28:44 +02:00
Charles-François Natali
249cdc39fc
Issue #18763 : subprocess: The file descriptors are now closed after calling the
...
preexec_fn callback, which may open file descriptors.
2013-08-25 18:24:45 +02:00
Gregory P. Smith
b394c1dac8
Fixes Issue #16962 : Use getdents64 instead of the obsolete getdents syscall
...
in the subprocess module on Linux.
2013-03-03 10:53:27 -08:00
Gregory P. Smith
255bf5b9ec
Issue #16962 : Use getdents64 instead of the obsolete getdents syscall in
...
the subprocess module on Linux.
2013-03-03 10:45:05 -08:00
Gregory P. Smith
8d07c264e4
Raise our own SubprocessError rather than a RuntimeError in when dealing with
...
odd rare errors coming from the subprocess module.
2012-11-10 23:53:47 -08:00
Gregory P. Smith
a10ddb8a55
Fixes Issue #16114 : The subprocess module no longer provides a
...
misleading error message stating that args[0] did not exist when
either the cwd or executable keyword arguments specified a path that
did not exist.
2012-10-10 03:44:47 -07:00
Gregory P. Smith
5591b02a4c
Fixes Issue #16114 : The subprocess module no longer provides a
...
misleading error message stating that args[0] did not exist when
either the cwd or executable keyword arguments specified a path that
did not exist.
It now keeps track of if the child got as far as preexec and reports it if
not back to the parent via a special "noexec" error message value in
the error pipe so that the cwd can be blamed for a failed chdir
instead of the exec of the executable being blamed instead.
The executable is also always reported accurately when exec fails.
Unittests enhanced to cover these cases.
2012-10-10 03:34:47 -07:00
Ross Lagerwall
a4b070102a
Merge with 3.2
2012-08-24 13:32:14 +02:00
Ross Lagerwall
f2b34b8b96
Issue 15777: Fix a refleak in _posixsubprocess.
...
It was exposed by 03c98d05b140 and dbbf3ccf72e8.
2012-08-24 13:25:59 +02:00
Stefan Krah
c0c03be53e
Merge 3.2.
2012-08-20 14:42:59 +02:00
Stefan Krah
db579d7b25
Issue #15738 : Fix a missing NULL check in subprocess_fork_exec().
2012-08-20 14:36:47 +02:00
Antoine Pitrou
721738fbee
Issue #15604 : Update uses of PyObject_IsTrue() to check for and handle errors correctly.
...
Patch by Serhiy Storchaka.
2012-08-15 23:20:39 +02:00
Antoine Pitrou
6f430e4963
Issue #15604 : Update uses of PyObject_IsTrue() to check for and handle errors correctly.
...
Patch by Serhiy Storchaka.
2012-08-15 23:18:25 +02:00
Gregory P. Smith
902274e948
Fixes issue #15000 : support the odd x32 abi on posixsubprocess's system call.
2012-06-05 13:30:24 -07:00
Gregory P. Smith
58f07a9d6d
Fixes issue #15000 : support the odd x32 abi on posixsubprocess's system call.
2012-06-05 13:26:39 -07:00
Ross Lagerwall
71faefc37e
Issue #14359 : Only use O_CLOEXEC in _posixmodule.c if it is defined.
...
Based on patch from Hervé Coatanhay.
2012-03-19 06:08:43 +02:00
Ross Lagerwall
5802fdf31f
Issue 14359: Only use O_CLOEXEC in _posixmodule.c if it is defined.
...
Based on patch from Hervé Coatanhay.
2012-03-18 15:55:10 +02:00
Ross Lagerwall
7f4fdb266a
Use ANSI C prototype instead of K&R style.
2012-03-07 20:06:33 +02:00
Benjamin Peterson
3ef2f8c296
merge 3.2
2012-01-22 20:04:58 -05:00
Benjamin Peterson
91eef984fd
fix declaration style
2012-01-22 20:04:46 -05:00
Gregory P. Smith
08c1278ab8
Fix FreeBSD, NetBSD and OpenBSD behavior of the issue #8052 fix.
2012-01-21 21:06:22 -08:00
Gregory P. Smith
4842efcf97
Fix FreeBSD, NetBSD and OpenBSD behavior of the issue #8052 fix.
2012-01-21 21:01:24 -08:00
Gregory P. Smith
d45382db0b
bugfix for *BSD platforms. (oops messed up #define)
2012-01-21 15:20:37 -08:00