[Twisted-Python] How do I debug this network problem?

exarkun at twistedmatrix.com exarkun at twistedmatrix.com
Mon Nov 17 18:09:10 MST 2014


On 12:42 am, peter.westlake at pobox.com wrote:
>
>On Mon, 17 Nov 2014, at 20:25, Glyph wrote:
>>
>>>On Nov 17, 2014, at 19:32, Peter Westlake
>>><peter.westlake at pobox.com> wrote:
>>>
>>>It's a known bug in Python!http://bugs.python.org/issue1038591,
>>>"Python 2.3+ socket._fileobject handles EAGAIN with data loss".
>>
>>This bug is in socket.makefile(), which Twisted never uses - not
>>socket.socket().
>
>Okay, how about http://bugs.python.org/issue9090, "Issue #9090 : Error
>code 10035 calling socket.recv() on a socket with a timeout
>(WSAEWOULDBLOCK - A non-blocking socket operation could not be 
>completed
>immediately)"?

Twisted also doesn't use sockets with timeouts - although the way socket 
timeouts are implemented in Python, I could perhaps imagine some timeout 
configuration leaking into Twisted's sockets due to some other code 
running in the same process.

Can you check to see if your AMP connection's underlying socket has a 
timeout set?  It *shouldn't*.  Twisted doesn't set one.  If some other 
code is causing a timeout to be set, I guess this could be the culprit.

Jean-Paul
>I actually found that one first, but it appeared to be Windows-only.
>Further down the comments it becomes clear that it's not, and the patch
>at https://hg.python.org/cpython/rev/8ec39bfd1f01 confirms that.
>
>It would be good news if it was 9090, because it's easier to switch to
>Python 2.7.8 than 3.
>
>Peter.




More information about the Twisted-Python mailing list