This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients vstinner
Date 2019-09-09.07:25:35
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1568013936.15.0.668992536534.issue38061@roundup.psfhosted.org>
In-reply-to
Content
The default value of subprocess.Popen "close_fds" parameter changed to True in Python 3. Compared to Python 2, close_fds=True can make Popen 10x slower: see bpo-37790.

A single close(fd) syscall is cheap. But when MAXFDS (maximum file descriptor number) is high, the loop calling close(fd) on each file descriptor can take several milliseconds.

On FreeBSD, the _posixsubprocess could use closefrom() to reduce the number of syscalls.

On Linux, _posixsubprocess lists the content of /proc/self/fd/ to only close open file descriptor, after fork() and before exec().
History
Date User Action Args
2019-09-09 07:25:36vstinnersetrecipients: + vstinner
2019-09-09 07:25:36vstinnersetmessageid: <1568013936.15.0.668992536534.issue38061@roundup.psfhosted.org>
2019-09-09 07:25:36vstinnerlinkissue38061 messages
2019-09-09 07:25:35vstinnercreate