[issue22114] You cannot call communicate() safely after receiving an exception (EINTR or EAGAIN)

2014-08-05 Thread Amrith Kumar
Amrith Kumar added the comment: The issue turned out to be something funky in monkey patching. os.read() shouldn't be getting called if the monkey patch was correct in the first place. -- resolution: -> not a bug status: open -> closed ___ Python t

[issue22114] You cannot call communicate() safely after receiving an exception (EINTR or EAGAIN)

2014-08-02 Thread Amrith Kumar
Amrith Kumar added the comment: After some debugging and reading code in python's subprocess.py (v2.7), here's what I'm seeing. (a) the error has nothing to do with eventlet and monkey-patching. (b) the code in _communicate_with_select() and potentially _communicate_with_poll() are the problem

[issue22114] You cannot call communicate() safely after receiving an exception (EINTR or EAGAIN)

2014-08-01 Thread STINNER Victor
STINNER Victor added the comment: > By the definition of the (blocking) communicate API, communicate can only be > called once (it feeds in all the input, and reads all the output). Since Python 3.3, communicate() can now fail with TimeoutExpired. On UNIX, it looks like it's possible to call a

[issue22114] You cannot call communicate() safely after receiving an exception (EINTR or EAGAIN)

2014-07-31 Thread Amrith Kumar
Amrith Kumar added the comment: r.david.murray, I guess the issue we have is that something (hypothesis: eventlet) is causing the blocking API to communicate() to throw an EAGAIN. This (https://bugs.launchpad.net/nova/+bug/1271331) is the bug that was fixed a while ago in OpenStack that introd

[issue22114] You cannot call communicate() safely after receiving an exception (EINTR or EAGAIN)

2014-07-31 Thread R. David Murray
R. David Murray added the comment: By the definition of the (blocking) communicate API, communicate can only be called once (it feeds in all the input, and reads all the output). -- ___ Python tracker

[issue22114] You cannot call communicate() safely after receiving an exception (EINTR or EAGAIN)

2014-07-31 Thread Amrith Kumar
Amrith Kumar added the comment: haypo; no argument from me. I just updated the description to make it more exact. I may have received EINTR or EAGAIN. In either event, I need to debug some more and try and do a clean repro and then figure out a proper fix. In the meanwhile, I proposed a fix

[issue22114] You cannot call communicate() safely after receiving an exception (EINTR or EAGAIN)

2014-07-31 Thread Amrith Kumar
Changes by Amrith Kumar : -- title: You cannot call communicate() safely after receiving EAGAIN -> You cannot call communicate() safely after receiving an exception (EINTR or EAGAIN) ___ Python tracker ___