How much time do we have for 3.4.1?

I think in this case I think it should be a catch of CancelledError, not a 
finally. On success, we don't want to close the socket when the coroutine 
terminates. Do we?



Le jeudi 3 avril 2014 19:33:24 UTC+2, Guido van Rossum a écrit :
>
> On Thu, Apr 3, 2014 at 4:16 AM, Jonathan Slenders 
> <[email protected]<javascript:>
> > wrote:
>
>> By blocking, I meant "not progressing anymore". Not that is blocks the 
>> thread.
>>
>>
>> Should we catch CancelledError here at this line?
>> https://code.google.com/p/tulip/source/browse/asyncio/base_events.py#410
>>
>>
> Or use a finally block. There are probably some other places where we 
> don't clean up when unexpected exceptions strike. This was a good catch, 
> Jonathan! We should make sure this is fixed in as many places as possible 
> before 3.4.1 goes out.
>  
>
>>
>> Le jeudi 3 avril 2014 12:10:56 UTC+2, Victor Stinner a écrit :
>>>
>>> Hi, 
>>>
>>> 2014-04-03 11:34 GMT+02:00 Jonathan Slenders <[email protected]>: 
>>> > First he proposed to wrap create_connection into wait_for with a 
>>> timeout=1 
>>> > parameter, but that would leave the file descriptor open that was 
>>> created in 
>>> > BaseEventLoop.create_connection().  Therefore he proposes to create 
>>> the 
>>> > socket ourself, using sock_connect , and if that fails due to a 
>>> timeout, 
>>> > call sock.close manually. 
>>>
>>> When you use wait_for(), the coroutine gets a CancelledError and so 
>>> can cleanup its data (close the socket). 
>>>
>>> If create_connection() doesn't close the socket on error, it's a bug. 
>>> Please open an issue. 
>>>
>>> > How is it possible that loop.create_connection blocks? 
>>>
>>> The slowest part is probably the DNS resolution. By default, 
>>> getaddrinfo() is called in a thread. 
>>>
>>> > Doesn't it just fail after a while if the host is not reachable? 
>>>
>>> Network operations can be slow, but create_connection() should not 
>>> "block", the coroutine should be running in background, as any "async" 
>>> task. 
>>>
>>> It would help to identify exactly which Python line hangs. 
>>>
>>> Victor 
>>>
>>
>
>
> -- 
> --Guido van Rossum (python.org/~guido) 
>

Reply via email to