Message170333
| Author |
vitaly |
| Recipients |
gregory.p.smith, pitrou, vitaly |
| Date |
2012年09月11日.17:52:47 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1347385968.8.0.625404409147.issue15918@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
My bug report refers to the following code block in subprocess.py. The problem is the same in 2.6.7 and 2.7.3:
=== From subprocess.py in Python 2.7.3 Source Distribution:
# Wait for exec to fail or succeed; possibly raising exception
# Exception limited to 1M
data = _eintr_retry_call(os.read, errpipe_read, 1048576)
finally:
# be sure the FD is closed no matter what
os.close(errpipe_read)
===
However, Python 3.2.3 appears to be doing this correctly; it loops, gathers the data from multiple os.read calls, and doesn't make huge (1048576) os.read requests:
=== from subprocess.py in 3.2.3 source distribution
# Wait for exec to fail or succeed; possibly raising an
# exception (limited in size)
data = bytearray()
while True:
part = _eintr_retry_call(os.read, errpipe_read, 50000)
data += part
if not part or len(data) > 50000:
break
=== |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2012年09月11日 17:52:48 | vitaly | set | recipients:
+ vitaly, gregory.p.smith, pitrou |
| 2012年09月11日 17:52:48 | vitaly | set | messageid: <1347385968.8.0.625404409147.issue15918@psf.upfronthosting.co.za> |
| 2012年09月11日 17:52:48 | vitaly | link | issue15918 messages |
| 2012年09月11日 17:52:47 | vitaly | create |
|