I investigated the possibility that the different exceptions we're seeing are caused by python 2.5 versus 2.6. Python 2.6 has a lot of new features for handling socket timeouts, so maybe the exceptions are different.
Well, I was able to get different exceptions, but they're not _that_ different. Here's a client-side socket timeout on write in python 2.5:
File "/usr/lib/python2.5/httplib.py", line 1108, in send
return self._ssl.write(stuff)
socket.sslerror: The write operation timed out
Here it is in Python 2.6:
File "/usr/lib/python2.6/httplib.py", line 755, in send
self.sock.sendall(str)
File "/usr/lib/python2.6/ssl.py", line 203, in sendall
v = self.send(data[count:])
File "/usr/lib/python2.6/ssl.py", line 94, in <lambda>
self.send = lambda data, flags=0: SSLSocket.send(self, data, flags)
File "/usr/lib/python2.6/ssl.py", line 174, in send
v = self._sslobj.write(data)
ssl.SSLError: The write operation timed out
Note that the 2.5 error occurs on the same line as the one Robert originally reported. Some code underneath that is deciding to raise a generic 'error' instead of a Python socket.sslerror.
I don't know enough about sockets to distinguish between "The write operation timed out" and "Connection timed out". "Connection timed out" might be a sign that the server gave up on you.
You might run this code:
import socket
print socket.getdefaulttimeout()
That's None for me; it may have a value for you. If it's None, I don't see how you can have a client-side timeout since lp:pqm doesn't set a timeout.
At this point I'm running out of ideas. We know that createComment is prone to timeouts, and the problem we're seeing is a a timeout. The only thing that doesn't fit is that the exception looks like a much lower-level exception than I'd expect--as through the server had simply dropped the connection rather than sending a 503 error.
I investigated the possibility that the different exceptions we're seeing are caused by python 2.5 versus 2.6. Python 2.6 has a lot of new features for handling socket timeouts, so maybe the exceptions are different.
Well, I was able to get different exceptions, but they're not _that_ different. Here's a client-side socket timeout on write in python 2.5:
File "/usr/lib/ python2. 5/httplib. py", line 1108, in send write(stuff)
return self._ssl.
socket.sslerror: The write operation timed out
Here it is in Python 2.6:
File "/usr/lib/ python2. 6/httplib. py", line 755, in send sock.sendall( str) python2. 6/ssl.py" , line 203, in sendall data[count: ]) python2. 6/ssl.py" , line 94, in <lambda> send(self, data, flags) python2. 6/ssl.py" , line 174, in send write(data)
self.
File "/usr/lib/
v = self.send(
File "/usr/lib/
self.send = lambda data, flags=0: SSLSocket.
File "/usr/lib/
v = self._sslobj.
ssl.SSLError: The write operation timed out
Note that the 2.5 error occurs on the same line as the one Robert originally reported. Some code underneath that is deciding to raise a generic 'error' instead of a Python socket.sslerror.
I don't know enough about sockets to distinguish between "The write operation timed out" and "Connection timed out". "Connection timed out" might be a sign that the server gave up on you.
You might run this code:
import socket getdefaulttimeo ut()
print socket.
That's None for me; it may have a value for you. If it's None, I don't see how you can have a client-side timeout since lp:pqm doesn't set a timeout.
At this point I'm running out of ideas. We know that createComment is prone to timeouts, and the problem we're seeing is a a timeout. The only thing that doesn't fit is that the exception looks like a much lower-level exception than I'd expect--as through the server had simply dropped the connection rather than sending a 503 error.