[New-bugs-announce] [issue12623] "universal newlines" subprocess support broken with select- and poll-based communicate()

Antoine Pitrou report at bugs.python.org
Sat Jul 23 22:11:33 CEST 2011


New submission from Antoine Pitrou <pitrou at free.fr>:

The select() and poll() loop implementations of Popen.communicate() call os.write() instead of the write() method on the stdin pipe, meaning any newline translation *and* unicode-to-bytes encoding step is skipped.

To use the write() method on the stdin pipe, we may have to set the file descriptor in non-blocking mode, especially given that _PIPE_BUF worth of characters can amount to more than _PIPE_BUF bytes on the underlying raw fd.

See issue12591 for a simpler issue that was fixed.

----------
components: Library (Lib)
messages: 141014
nosy: gregory.p.smith, pitrou
priority: normal
severity: normal
stage: needs patch
status: open
title: "universal newlines" subprocess support broken with select- and poll-based communicate()
type: behavior
versions: Python 3.2, Python 3.3

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue12623>
_______________________________________


More information about the New-bugs-announce mailing list