New submission from superwesman:
hi - I noticed some odd behaviour with subprocess when the output
(stdout) is large - I did some sleuthing and found a reproduceable case
- I tested this on solaris using python 2.4.2 (sparc) and using 2.5
(opteron) - I've attached a python script that details the problem - I
created 2 files (small_file and large_file) that are 20480 and 20481
bytes, respectively
ls -lrt ./tmp/*_file
-rw-r--r-- 1 wtorres staff 20481 Oct 10 12:32 ./tmp/large_file
-rw-r--r-- 1 wtorres staff 20480 Oct 10 12:32 ./tmp/small_file
the script cats each file, thus generating an appropriately sized stdout
- the workaround we came up with was to use our own file handle and use
the parameter stdout=my_file_handle.fileno() instead of stdout=PIPE -
you can see this in the attached example as well
python ./tmp/brent.py
testing with a small file - these should both work
using my own file handle ok
using PIPE ... ok
testing with a large file - the second one here should fail
using my own file handle ok
using PIPE ...
Traceback (most recent call last):
File ./tmp/brent.py, line 43, in ?
test_popen_bug( large_file )
File ./tmp/brent.py, line 31, in test_popen_bug
rc = my_popen.wait()
File /tools/python/2.4.2/solaris/lib/python2.4/subprocess.py, line
1007, in wait
pid, sts = os.waitpid(self.pid, 0)
KeyboardInterrupt
based on all this, it seems that the PIPE file handle has some buffer or
something that is filling up and not allowing us to continue... or
something. Thoughts?
-w
--
components: None
files: brent.py
messages: 56317
nosy: superwesman
severity: normal
status: open
title: subprocess Popen wait() function hangs when stdout is 20480
type: behavior
versions: Python 2.4
__
Tracker [EMAIL PROTECTED]
http://bugs.python.org/issue1256
__
brent.py
Description: Binary data
___
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com