Staging
v0.5.1
https://github.com/python/cpython
Revision b90c68586e1f2c45c736dd38880f182be267e2ef authored by Miss Islington (bot) on 06 February 2018, 06:51:10 UTC, committed by Gregory P. Smith on 06 February 2018, 06:51:10 UTC
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 c1e46e94de38a92f98736af9a42d89c3975a9919)

Co-authored-by: Alexey Izbyshev <izbyshev@users.noreply.github.com>
1 parent 7bd5a75
History
Tip revision: b90c68586e1f2c45c736dd38880f182be267e2ef authored by Miss Islington (bot) on 06 February 2018, 06:51:10 UTC
bpo-32777: Fix _Py_set_inheritable async-safety in subprocess (GH-5560) (GH-5563)
Tip revision: b90c685
File Mode Size
asyncio
collections
concurrent
ctypes
curses
dbm
distutils
email
encodings
ensurepip
html
http
idlelib
importlib
json
lib2to3
logging
msilib
multiprocessing
pydoc_data
site-packages
sqlite3
test
tkinter
turtledemo
unittest
urllib
venv
wsgiref
xml
xmlrpc
__future__.py -rw-r--r-- 4.7 KB
__phello__.foo.py -rw-r--r-- 64 bytes
_bootlocale.py -rw-r--r-- 1.3 KB
_collections_abc.py -rw-r--r-- 25.8 KB
_compat_pickle.py -rw-r--r-- 8.5 KB
_compression.py -rw-r--r-- 5.2 KB
_dummy_thread.py -rw-r--r-- 5.0 KB
_markupbase.py -rw-r--r-- 14.3 KB
_osx_support.py -rw-r--r-- 18.7 KB
_pydecimal.py -rw-r--r-- 224.8 KB
_pyio.py -rw-r--r-- 86.0 KB
_sitebuiltins.py -rw-r--r-- 3.0 KB
_strptime.py -rw-r--r-- 24.2 KB
_threading_local.py -rw-r--r-- 7.2 KB
_weakrefset.py -rw-r--r-- 5.6 KB
abc.py -rw-r--r-- 8.5 KB
aifc.py -rw-r--r-- 31.7 KB
antigravity.py -rw-r--r-- 476 bytes
argparse.py -rw-r--r-- 88.2 KB
ast.py -rw-r--r-- 11.9 KB
asynchat.py -rw-r--r-- 11.1 KB
asyncore.py -rw-r--r-- 19.7 KB
base64.py -rwxr-xr-x 20.0 KB
bdb.py -rw-r--r-- 23.0 KB
binhex.py -rw-r--r-- 13.6 KB
bisect.py -rw-r--r-- 2.5 KB
bz2.py -rw-r--r-- 12.2 KB
cProfile.py -rwxr-xr-x 5.2 KB
calendar.py -rw-r--r-- 22.7 KB
cgi.py -rwxr-xr-x 35.2 KB
cgitb.py -rw-r--r-- 11.7 KB
chunk.py -rw-r--r-- 5.3 KB
cmd.py -rw-r--r-- 14.5 KB
code.py -rw-r--r-- 10.4 KB
codecs.py -rw-r--r-- 35.4 KB
codeop.py -rw-r--r-- 5.9 KB
colorsys.py -rw-r--r-- 4.0 KB
compileall.py -rw-r--r-- 11.6 KB
configparser.py -rw-r--r-- 52.3 KB
contextlib.py -rw-r--r-- 12.9 KB
copy.py -rw-r--r-- 8.6 KB
copyreg.py -rw-r--r-- 6.8 KB
crypt.py -rw-r--r-- 1.8 KB
csv.py -rw-r--r-- 15.8 KB
datetime.py -rw-r--r-- 78.3 KB
decimal.py -rw-r--r-- 320 bytes
difflib.py -rw-r--r-- 82.2 KB
dis.py -rw-r--r-- 17.7 KB
doctest.py -rw-r--r-- 101.9 KB
dummy_threading.py -rw-r--r-- 2.7 KB
enum.py -rw-r--r-- 32.7 KB
filecmp.py -rw-r--r-- 9.6 KB
fileinput.py -rw-r--r-- 14.1 KB
fnmatch.py -rw-r--r-- 3.1 KB
formatter.py -rw-r--r-- 14.8 KB
fractions.py -rw-r--r-- 23.1 KB
ftplib.py -rw-r--r-- 34.4 KB
functools.py -rw-r--r-- 30.4 KB
genericpath.py -rw-r--r-- 4.6 KB
getopt.py -rw-r--r-- 7.3 KB
getpass.py -rw-r--r-- 5.9 KB
gettext.py -rw-r--r-- 21.0 KB
glob.py -rw-r--r-- 5.5 KB
gzip.py -rw-r--r-- 19.9 KB
hashlib.py -rw-r--r-- 9.3 KB
heapq.py -rw-r--r-- 22.4 KB
hmac.py -rw-r--r-- 4.9 KB
imaplib.py -rw-r--r-- 51.8 KB
imghdr.py -rw-r--r-- 3.7 KB
imp.py -rw-r--r-- 10.4 KB
inspect.py -rw-r--r-- 113.1 KB
io.py -rw-r--r-- 3.4 KB
ipaddress.py -rw-r--r-- 74.0 KB
keyword.py -rwxr-xr-x 2.2 KB
linecache.py -rw-r--r-- 5.2 KB
locale.py -rw-r--r-- 73.0 KB
lzma.py -rw-r--r-- 12.7 KB
macpath.py -rw-r--r-- 5.8 KB
macurl2path.py -rw-r--r-- 2.7 KB
mailbox.py -rw-r--r-- 76.8 KB
mailcap.py -rw-r--r-- 7.9 KB
mimetypes.py -rw-r--r-- 20.5 KB
modulefinder.py -rw-r--r-- 22.5 KB
netrc.py -rw-r--r-- 5.6 KB
nntplib.py -rw-r--r-- 42.1 KB
ntpath.py -rw-r--r-- 22.7 KB
nturl2path.py -rw-r--r-- 2.4 KB
numbers.py -rw-r--r-- 10.0 KB
opcode.py -rw-r--r-- 5.7 KB
operator.py -rw-r--r-- 10.6 KB
optparse.py -rw-r--r-- 59.0 KB
os.py -rw-r--r-- 36.6 KB
pathlib.py -rw-r--r-- 46.7 KB
pdb.py -rwxr-xr-x 59.9 KB
pickle.py -rw-r--r-- 54.4 KB
pickletools.py -rw-r--r-- 89.7 KB
pipes.py -rw-r--r-- 8.7 KB
pkgutil.py -rw-r--r-- 20.8 KB
platform.py -rwxr-xr-x 45.0 KB
plistlib.py -rw-r--r-- 31.2 KB
poplib.py -rw-r--r-- 14.6 KB
posixpath.py -rw-r--r-- 15.1 KB
pprint.py -rw-r--r-- 20.4 KB
profile.py -rwxr-xr-x 21.5 KB
pstats.py -rw-r--r-- 25.9 KB
pty.py -rw-r--r-- 4.7 KB
py_compile.py -rw-r--r-- 7.0 KB
pyclbr.py -rw-r--r-- 13.2 KB
pydoc.py -rw-r--r-- 101.4 KB
queue.py -rw-r--r-- 8.6 KB
quopri.py -rwxr-xr-x 7.1 KB
random.py -rw-r--r-- 26.7 KB
re.py -rw-r--r-- 15.2 KB
reprlib.py -rw-r--r-- 5.2 KB
rlcompleter.py -rw-r--r-- 6.9 KB
runpy.py -rw-r--r-- 11.7 KB
sched.py -rw-r--r-- 6.4 KB
secrets.py -rw-r--r-- 2.0 KB
selectors.py -rw-r--r-- 19.0 KB
shelve.py -rw-r--r-- 8.3 KB
shlex.py -rw-r--r-- 12.7 KB
shutil.py -rw-r--r-- 39.3 KB
signal.py -rw-r--r-- 2.1 KB
site.py -rw-r--r-- 20.0 KB
smtpd.py -rwxr-xr-x 33.9 KB
smtplib.py -rwxr-xr-x 43.1 KB
sndhdr.py -rw-r--r-- 6.9 KB
socket.py -rw-r--r-- 26.8 KB
socketserver.py -rw-r--r-- 25.2 KB
sre_compile.py -rw-r--r-- 18.9 KB
sre_constants.py -rw-r--r-- 6.7 KB
sre_parse.py -rw-r--r-- 35.7 KB
ssl.py -rw-r--r-- 43.4 KB
stat.py -rw-r--r-- 4.9 KB
statistics.py -rw-r--r-- 20.2 KB
string.py -rw-r--r-- 11.5 KB
stringprep.py -rw-r--r-- 12.6 KB
struct.py -rw-r--r-- 257 bytes
subprocess.py -rw-r--r-- 60.4 KB
sunau.py -rw-r--r-- 17.7 KB
symbol.py -rwxr-xr-x 2.1 KB
symtable.py -rw-r--r-- 7.1 KB
sysconfig.py -rw-r--r-- 24.3 KB
tabnanny.py -rwxr-xr-x 11.1 KB
tarfile.py -rwxr-xr-x 91.0 KB
telnetlib.py -rw-r--r-- 22.6 KB
tempfile.py -rw-r--r-- 26.0 KB
textwrap.py -rw-r--r-- 19.1 KB
this.py -rw-r--r-- 1003 bytes
threading.py -rw-r--r-- 47.9 KB
timeit.py -rwxr-xr-x 13.0 KB
token.py -rw-r--r-- 3.0 KB
tokenize.py -rw-r--r-- 28.3 KB
trace.py -rwxr-xr-x 28.3 KB
traceback.py -rw-r--r-- 22.6 KB
tracemalloc.py -rw-r--r-- 16.3 KB
tty.py -rw-r--r-- 879 bytes
turtle.py -rw-r--r-- 140.3 KB
types.py -rw-r--r-- 8.7 KB
typing.py -rw-r--r-- 78.0 KB
uu.py -rwxr-xr-x 6.6 KB
uuid.py -rw-r--r-- 23.3 KB
warnings.py -rw-r--r-- 18.1 KB
wave.py -rw-r--r-- 17.3 KB
weakref.py -rw-r--r-- 20.0 KB
webbrowser.py -rwxr-xr-x 21.3 KB
xdrlib.py -rw-r--r-- 5.8 KB
zipapp.py -rw-r--r-- 7.0 KB
zipfile.py -rw-r--r-- 73.9 KB

back to top