It looks like you didn't close explicitly your loop. See the doc:
https://docs.python.org/dev/library/asyncio-dev.html#close-transports-and-event-loops

Victor

2015-10-23 15:17 GMT+02:00 Leslie Klein <[email protected]>:
> I run the loop like this:
> loop.run_until_complete(asyncio.wait(tasks))
>
> tasks is a list: 1 task connects to each peer and 1 task runs the protocol
> to download data. Eventually all the connect tasks end. When the remote host
> shuts down, the download task ends.
> If I don't add more tasks connect tasks to the loop (with a new set of
> peers), maybe this is what asyncio does.
>
> On Thursday, October 22, 2015 at 11:34:01 PM UTC-4, Leslie Klein wrote:
>>
>> I am building a bittorrent client using the python 3.4 asyncio library. I
>> get up to a certain point in the protocol (receive Unchoke message from a
>> remote peer) and then the remote peer closes the connection. Here is the
>> output to the console.
>> https://docs.python.org/2/reference/datamodel.html#object.__del__ explains
>> some nuances with __del__. I assume I need to do something in my code, but I
>> need a hint. Everytime my client receives the Unchoke message, this error
>> occurs.
>>
>> Windows PowerShell
>> Copyright (C) 2009 Microsoft Corporation. All rights reserved.
>>
>> >> c:\Anaconda3\python .\message_types.py
>>
>> received Handshake from peer 78.187.198.160
>> 78.187.198.160: successfully read Handshake
>> received Handshake from peer 186.106.94.63
>> 186.106.94.63: successfully read Handshake
>> 78.187.198.160: successfully read Not Supported
>> 186.106.94.63: successfully read Not Supported
>> received Bitfield from peer 78.187.198.160
>> 78.187.198.160: successfully read Bitfield
>> received Bitfield from peer 186.106.94.63
>> 186.106.94.63: successfully read Bitfield
>> 186.106.94.63: wrote INTERESTED
>> 186.106.94.63: client ready to receive Unchoke
>> received Have from peer 186.106.94.63
>> received Unchoke from peer 186.106.94.63
>> [WinError 10054] An existing connection was forcibly closed by the remote
>> host
>>
>> Exception ignored in: <bound method _WindowsSelectorEventLoop.__del__ of
>> <_WindowsSelectorEventLoop running=False closed
>> =False debug=True>>
>> Traceback (most recent call last):
>>   File "c:\Anaconda3\lib\asyncio\base_events.py", line 361, in __del__
>>   File "c:\Anaconda3\lib\asyncio\selector_events.py", line 98, in close
>>   File "c:\Anaconda3\lib\asyncio\base_events.py", line 340, in close
>>   File "c:\Anaconda3\lib\logging\__init__.py", line 1262, in debug
>>   File "c:\Anaconda3\lib\logging\__init__.py", line 1409, in _log
>>   File "c:\Anaconda3\lib\logging\__init__.py", line 1419, in handle
>>   File "c:\Anaconda3\lib\logging\__init__.py", line 1481, in callHandlers
>>   File "c:\Anaconda3\lib\logging\__init__.py", line 853, in handle
>>   File "c:\Anaconda3\lib\logging\__init__.py", line 1040, in emit
>>   File "c:\Anaconda3\lib\logging\__init__.py", line 1030, in _open
>> NameError: name 'open' is not defined
>> Exception ignored in: <bound method Task.__del__ of <Task finished
>> coro=<downloader() done, defined at .\message_types.p
>> y:934> exception=KeyError(None,) created at
>> c:\Anaconda3\lib\asyncio\tasks.py:330>>
>> Traceback (most recent call last):
>>   File "c:\Anaconda3\lib\asyncio\tasks.py", line 94, in __del__
>>   File "c:\Anaconda3\lib\asyncio\futures.py", line 216, in __del__
>>   File "c:\Anaconda3\lib\asyncio\base_events.py", line 1037, in
>> call_exception_handler
>>   File "c:\Anaconda3\lib\logging\__init__.py", line 1303, in error
>>   File "c:\Anaconda3\lib\logging\__init__.py", line 1409, in _log
>>   File "c:\Anaconda3\lib\logging\__init__.py", line 1419, in handle
>>   File "c:\Anaconda3\lib\logging\__init__.py", line 1481, in callHandlers
>>   File "c:\Anaconda3\lib\logging\__init__.py", line 853, in handle
>>   File "c:\Anaconda3\lib\logging\__init__.py", line 1040, in emit
>>   File "c:\Anaconda3\lib\logging\__init__.py", line 1030, in _open
>> NameError: name 'open' is not defined
>>
>

Reply via email to