[Python-Dev] the new 2.3a1 settimeout() with httplib and SSL

Ben Laurie ben@algroup.co.uk
Fri, 31 Jan 2003 21:47:21 +0000


Guido van Rossum wrote:
>>On Fri, Jan 31, 2003, Geoffrey Talvola wrote:
>>
>>>Ben Laurie [mailto:ben@algroup.co.uk] wrote:
>>>
>>>>Doesn't seem quite right to me yet - the problem is that if data
>>>>arrives 1 byte at a time with just less than the timeout between each
>>>>byte, then you can get n*timeout as the actual timeout (where n is
>>>>potentially very large). You need to reduce the timeout after each
>>>>select, surely?
>>>
>>>Hmmm.  The question is, how should the timeout be interpreted?
>>>
>>>The patch I submitted interprets it as the timeout for activity on the
>>>underlying socket itself, since that's the object on which you set
>>>the timeout by calling sock.settimeout().  You're suggesting that it
>>>should be interpreted as the timeout for the call to read() or write()
>>>on the ssl object, which involves potentially many separate socket
>>>operations.
>>>
>>>Anyone else have any opinion on the correct interpretation?  I lean
>>>toward the one I've already implemented, since it requires no new work
>>>:-)
>>
>>I'm in favor of it referring to network activity, since that's the
>>interpretation used by non-SSL timeouts.
>>-- 
>>Aahz (aahz@pythoncraft.com)           <*>         http://www.pythoncraft.com/
> 
> 
> I don't understand what Aahz meant, but if this is the only issue, I'm
> with Geoff.  In general, the timeout gets reset whenever a byte is
> received.

The point is that in the standard case, a byte on the network is a byte 
in the application, so you either get a byte or you time out in the 
specified time.

In the SSL case, you could neither get a byte nor time out, at the 
application layer, until much, much later than you thought you specified.

This seems broken to me, and POLA would suggest I'm right (i.e. if I say 
time out in 1 second, I'll be pretty astonished when that turns into a day).

Cheers,

Ben.

-- 
http://www.apache-ssl.org/ben.html       http://www.thebunker.net/

"There is no limit to what a man can do or how far he can go if he
doesn't mind who gets the credit." - Robert Woodruff