[New-bugs-announce] [issue39241] Popen of python3.6 hangs on os.read(errpipe_read, 50000)

Xu report at bugs.python.org
Mon Jan 6 20:35:08 EST 2020


New submission from Xu <liuxu1005 at gmail.com>:

I have a piece code hangs on os.read(errpipe_read, 50000)
So I compared the python3.6 with python2.7 on _execute_child, I saw:

for python2.7 we create the errpipe_read/write with pipe_cloexec()

1213             # For transferring possible exec failure from child to parent
1214             # The first char specifies the exception type: 0 means
1215             # OSError, 1 means some other error.
1216             errpipe_read, errpipe_write = self.pipe_cloexec()


while for python3.6 we create the errpipe_read/write with pipe()

1251             # For transferring possible exec failure from child to parent.
1252             # Data format: "exception name:hex errno:description"
1253             # Pickle is not used; it is complex and involves memory allocation.
1254             errpipe_read, errpipe_write = os.pipe()

Does that mean python3.6 doesn't set the the flag FD_CLOEXEC on the pipe ?

----------
components: Library (Lib)
messages: 359486
nosy: liuxu1005
priority: normal
severity: normal
status: open
title: Popen of python3.6 hangs on os.read(errpipe_read, 50000)
versions: Python 3.6

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue39241>
_______________________________________


More information about the New-bugs-announce mailing list