New submission from Xu <liuxu1...@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 <rep...@bugs.python.org> <https://bugs.python.org/issue39241> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com