Message170227
| Author |
vitaly |
| Recipients |
Denis.Bilenko, neologix, vitaly |
| Date |
2012年09月10日.20:09:54 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1347307794.95.0.475369174532.issue15896@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
Per Charles-François Natali (neologix), I tried the following:
1. Reduce the initial read size argument (rSize in my code snippet) from 1048576 (1MB, the same amount as used by subprocess.Popen._executeChild) to 1000000: the problem appears to go away (could be just red herring, though); this actually makes me think that it's a Python implementation problem on MacOS - why should an initial read request with 1048576 read size trigger EINVAL every other time (1,3,5,9, etc.), but using the initial size of 1000000 doesn't?
2. "put a short sleep before exiting the child process (after pickling the exception) to see what happens if the reader reads before the pipe is closed by the other end" -- I took that to mean a delay after the "os.write(errpipe_write, pickle.dumps(exc_value))" call in my snippet: I tried 1, 2, and 4-second delays (via time.sleep()). One time, I saw the Invalid Argument in only one of the 9 iterations, but in all the other runs Invalid Argument showed up as before on iterations: 1, 3, 5, 7, 9
3. put the delay (tried with 1 and 2 seconds) before "os.write(errpipe_write, pickle.dumps(exc_value))": Invalid Argument showed up as before on iterations: 1, 3, 5, 7, 9 |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2012年09月10日 20:09:54 | vitaly | set | recipients:
+ vitaly, neologix, Denis.Bilenko |
| 2012年09月10日 20:09:54 | vitaly | set | messageid: <1347307794.95.0.475369174532.issue15896@psf.upfronthosting.co.za> |
| 2012年09月10日 20:09:54 | vitaly | link | issue15896 messages |
| 2012年09月10日 20:09:54 | vitaly | create |
|