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.
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
received Handshake from peer 186.106.94.63
received Bitfield from peer 78.187.198.160
received Bitfield from peer 186.106.94.63
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