Exception: Unknown document has been received
aaroncdc opened this issue · comments
I'm getting this error while trying to connect to the TOR network using your library (version 1.1.4):
ERROR:root:[ignored]
Traceback (most recent call last):
File "D:\Python\Python37\lib\site-packages\torpy\utils.py", line 78, in newfn
return func(*args, **kwargs)
File "D:\Python\Python37\lib\site-packages\torpy\consesus.py", line 157, in renew
raise Exception('Unknown document has been received')
Exception: Unknown document has been received
WARNING:torpy.utils:Retry with another authority...
ERROR:root:[ignored]
Traceback (most recent call last):
File "D:\Python\Python37\lib\site-packages\torpy\utils.py", line 78, in newfn
return func(*args, **kwargs)
File "D:\Python\Python37\lib\site-packages\torpy\consesus.py", line 157, in renew
raise Exception('Unknown document has been received')
Exception: Unknown document has been received
WARNING:torpy.utils:Retry with another authority...
ERROR:root:[ignored]
Traceback (most recent call last):
File "D:\Python\Python37\lib\site-packages\torpy\utils.py", line 78, in newfn
return func(*args, **kwargs)
File "D:\Python\Python37\lib\site-packages\torpy\consesus.py", line 157, in renew
raise Exception('Unknown document has been received')
Exception: Unknown document has been received
WARNING:torpy.utils:Retry with another authority...
Unknown document has been received
I tried with torpy_cli too, same issue:
>torpy_cli --url https://ipecho.net/plain
Loading cached NetworkStatusDocument from TorCacheDirStorage: C:\Users\<username>\AppData\Roaming\torpy\torpy\network_status
Loading cached DirKeyCertificateList from TorCacheDirStorage: C:\Users\<username>\AppData\Roaming\torpy\torpy\dir_key_certificates
Downloading new consensus...
Connecting to guard node 128.31.0.39:9101 (moria1; None)... (Consensus/PublicKeys downloader)
timed out
[ignored]
Traceback (most recent call last):
File "d:\python\python37\lib\site-packages\torpy\cell_socket.py", line 63, in connect
self._socket.connect((self._router.ip, self._router.or_port))
File "d:\python\python37\lib\ssl.py", line 1172, in connect
self._real_connect(addr, False)
File "d:\python\python37\lib\ssl.py", line 1159, in _real_connect
super().connect(addr)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "d:\python\python37\lib\site-packages\torpy\utils.py", line 78, in newfn
return func(*args, **kwargs)
File "d:\python\python37\lib\site-packages\torpy\consesus.py", line 152, in renew
raw_string = self.download_consensus(prev_hash)
File "d:\python\python37\lib\site-packages\torpy\consesus.py", line 306, in download_consensus
with self._get_auth_dir_client() as dir_client:
File "d:\python\python37\lib\site-packages\torpy\consesus.py", line 287, in _get_auth_dir_client
return self._auth_dir_circuit.create_dir_client()
File "d:\python\python37\lib\site-packages\torpy\utils.py", line 60, in __get__
value = obj.__dict__[self.func.__name__] = self.func(obj)
File "d:\python\python37\lib\site-packages\torpy\consesus.py", line 283, in _auth_dir_circuit
self._auth_guard, circuit = self._create_dir_circuit(authority=True, purpose='Consensus/PublicKeys downloader')
File "d:\python\python37\lib\site-packages\torpy\consesus.py", line 278, in _create_dir_circuit
guard = TorGuard(router, purpose=purpose)
File "d:\python\python37\lib\site-packages\torpy\guard.py", line 66, in __init__
self.__tor_socket.connect()
File "d:\python\python37\lib\site-packages\torpy\cell_socket.py", line 69, in connect
raise TorSocketConnectError(e)
torpy.cell_socket.TorSocketConnectError: timed out
Retry with another authority...
Downloading new consensus...
Connecting to guard node 171.25.193.9:80 (maatuska; None)... (Consensus/PublicKeys downloader)
[WinError 10054] Se ha forzado la interrupción de una conexión existente por el host remoto
[ignored]
Traceback (most recent call last):
File "d:\python\python37\lib\site-packages\torpy\cell_socket.py", line 63, in connect
self._socket.connect((self._router.ip, self._router.or_port))
File "d:\python\python37\lib\ssl.py", line 1172, in connect
self._real_connect(addr, False)
File "d:\python\python37\lib\ssl.py", line 1163, in _real_connect
self.do_handshake()
File "d:\python\python37\lib\ssl.py", line 1139, in do_handshake
self._sslobj.do_handshake()
ConnectionResetError: [WinError 10054] Se ha forzado la interrupción de una conexión existente por el host remoto
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "d:\python\python37\lib\site-packages\torpy\utils.py", line 78, in newfn
return func(*args, **kwargs)
File "d:\python\python37\lib\site-packages\torpy\consesus.py", line 152, in renew
raw_string = self.download_consensus(prev_hash)
File "d:\python\python37\lib\site-packages\torpy\consesus.py", line 306, in download_consensus
with self._get_auth_dir_client() as dir_client:
File "d:\python\python37\lib\site-packages\torpy\consesus.py", line 287, in _get_auth_dir_client
return self._auth_dir_circuit.create_dir_client()
File "d:\python\python37\lib\site-packages\torpy\utils.py", line 60, in __get__
value = obj.__dict__[self.func.__name__] = self.func(obj)
File "d:\python\python37\lib\site-packages\torpy\consesus.py", line 283, in _auth_dir_circuit
self._auth_guard, circuit = self._create_dir_circuit(authority=True, purpose='Consensus/PublicKeys downloader')
File "d:\python\python37\lib\site-packages\torpy\consesus.py", line 278, in _create_dir_circuit
guard = TorGuard(router, purpose=purpose)
File "d:\python\python37\lib\site-packages\torpy\guard.py", line 66, in __init__
self.__tor_socket.connect()
File "d:\python\python37\lib\site-packages\torpy\cell_socket.py", line 69, in connect
raise TorSocketConnectError(e)
torpy.cell_socket.TorSocketConnectError: [WinError 10054] Se ha forzado la interrupción de una conexión existente por el host remoto
Retry with another authority...
Downloading new consensus...
Connecting to guard node 204.13.164.118:443 (bastet; None)... (Consensus/PublicKeys downloader)
_ssl.c:1059: The handshake operation timed out
[ignored]
Traceback (most recent call last):
File "d:\python\python37\lib\site-packages\torpy\cell_socket.py", line 63, in connect
self._socket.connect((self._router.ip, self._router.or_port))
File "d:\python\python37\lib\ssl.py", line 1172, in connect
self._real_connect(addr, False)
File "d:\python\python37\lib\ssl.py", line 1163, in _real_connect
self.do_handshake()
File "d:\python\python37\lib\ssl.py", line 1139, in do_handshake
self._sslobj.do_handshake()
socket.timeout: _ssl.c:1059: The handshake operation timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "d:\python\python37\lib\site-packages\torpy\utils.py", line 78, in newfn
return func(*args, **kwargs)
File "d:\python\python37\lib\site-packages\torpy\consesus.py", line 152, in renew
raw_string = self.download_consensus(prev_hash)
File "d:\python\python37\lib\site-packages\torpy\consesus.py", line 306, in download_consensus
with self._get_auth_dir_client() as dir_client:
File "d:\python\python37\lib\site-packages\torpy\consesus.py", line 287, in _get_auth_dir_client
return self._auth_dir_circuit.create_dir_client()
File "d:\python\python37\lib\site-packages\torpy\utils.py", line 60, in __get__
value = obj.__dict__[self.func.__name__] = self.func(obj)
File "d:\python\python37\lib\site-packages\torpy\consesus.py", line 283, in _auth_dir_circuit
self._auth_guard, circuit = self._create_dir_circuit(authority=True, purpose='Consensus/PublicKeys downloader')
File "d:\python\python37\lib\site-packages\torpy\consesus.py", line 278, in _create_dir_circuit
guard = TorGuard(router, purpose=purpose)
File "d:\python\python37\lib\site-packages\torpy\guard.py", line 66, in __init__
self.__tor_socket.connect()
File "d:\python\python37\lib\site-packages\torpy\cell_socket.py", line 69, in connect
raise TorSocketConnectError(e)
torpy.cell_socket.TorSocketConnectError: _ssl.c:1059: The handshake operation timed out
Retry with another authority...
Traceback (most recent call last):
File "d:\python\python37\lib\site-packages\torpy\cell_socket.py", line 63, in connect
self._socket.connect((self._router.ip, self._router.or_port))
File "d:\python\python37\lib\ssl.py", line 1172, in connect
self._real_connect(addr, False)
File "d:\python\python37\lib\ssl.py", line 1163, in _real_connect
self.do_handshake()
File "d:\python\python37\lib\ssl.py", line 1139, in do_handshake
self._sslobj.do_handshake()
socket.timeout: _ssl.c:1059: The handshake operation timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "d:\python\python37\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "d:\python\python37\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "D:\Python\Python37\Scripts\torpy_cli.exe\__main__.py", line 7, in <module>
File "d:\python\python37\lib\site-packages\torpy\cli\console.py", line 60, in main
auth_data=args.auth_data, verbose=args.verbose)
File "d:\python\python37\lib\site-packages\torpy\http\urlopener.py", line 142, in do_request
with tor_opener(hops_count=hops, auth_data=auth_data, debuglevel=verbose) as opener:
File "d:\python\python37\lib\contextlib.py", line 112, in __enter__
return next(self.gen)
File "d:\python\python37\lib\site-packages\torpy\http\urlopener.py", line 136, in tor_opener
with TorClient(auth_data=auth_data) as tor:
File "d:\python\python37\lib\site-packages\torpy\client.py", line 37, in __init__
self._consensus = consensus or TorConsensus()
File "d:\python\python37\lib\site-packages\torpy\consesus.py", line 130, in __init__
self.renew()
File "d:\python\python37\lib\site-packages\torpy\utils.py", line 78, in newfn
return func(*args, **kwargs)
File "d:\python\python37\lib\site-packages\torpy\consesus.py", line 152, in renew
raw_string = self.download_consensus(prev_hash)
File "d:\python\python37\lib\site-packages\torpy\consesus.py", line 306, in download_consensus
with self._get_auth_dir_client() as dir_client:
File "d:\python\python37\lib\site-packages\torpy\consesus.py", line 287, in _get_auth_dir_client
return self._auth_dir_circuit.create_dir_client()
File "d:\python\python37\lib\site-packages\torpy\utils.py", line 60, in __get__
value = obj.__dict__[self.func.__name__] = self.func(obj)
File "d:\python\python37\lib\site-packages\torpy\consesus.py", line 283, in _auth_dir_circuit
self._auth_guard, circuit = self._create_dir_circuit(authority=True, purpose='Consensus/PublicKeys downloader')
File "d:\python\python37\lib\site-packages\torpy\consesus.py", line 278, in _create_dir_circuit
guard = TorGuard(router, purpose=purpose)
File "d:\python\python37\lib\site-packages\torpy\guard.py", line 66, in __init__
self.__tor_socket.connect()
File "d:\python\python37\lib\site-packages\torpy\cell_socket.py", line 69, in connect
raise TorSocketConnectError(e)
torpy.cell_socket.TorSocketConnectError: _ssl.c:1059: The handshake operation timed out
TOR browser seems to work fine. The thing is, it was working fine until a while ago.
Same here! Until like 6/7 hours ago it was working but at some point it always returned your log. Tested on Ubuntu 20.04 and Windows 10.
A minimal example:
from torpy.http.requests import TorRequests
with TorRequests() as tor_requests:
with tor_requests.get_session() as sess:
response = sess.get("https://webscraper.io/test-sites/e-commerce/allinone") # fire request
print(response)
My log is slightly different from yours but mainly the same.
Python 3.8.5 (default, Sep 4 2020, 07:30:14)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from torpy.http.requests import TorRequests
quests() as tor_requests:
with tor_requests.get_session() as sess:
response = sess.get("https://webscraper.io/test-sites/e-commerce/allinone") # fire request
print(response)>>> with TorRequests() as tor_requests:
... with tor_requests.get_session() as sess:
... response = sess.get("https://webscraper.io/test-sites/e-commerce/allinone") # fire request
... print(response)
...
timed out
ERROR:root:[ignored]
Traceback (most recent call last):
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/cell_socket.py", line 63, in connect
self._socket.connect((self._router.ip, self._router.or_port))
File "/home/dome/miniconda3/lib/python3.8/ssl.py", line 1342, in connect
self._real_connect(addr, False)
File "/home/dome/miniconda3/lib/python3.8/ssl.py", line 1329, in _real_connect
super().connect(addr)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/utils.py", line 78, in newfn
return func(*args, **kwargs)
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/consesus.py", line 152, in renew
raw_string = self.download_consensus(prev_hash)
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/consesus.py", line 306, in download_consensus
with self._get_auth_dir_client() as dir_client:
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/consesus.py", line 287, in _get_auth_dir_client
return self._auth_dir_circuit.create_dir_client()
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/utils.py", line 60, in __get__
value = obj.__dict__[self.func.__name__] = self.func(obj)
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/consesus.py", line 283, in _auth_dir_circuit
self._auth_guard, circuit = self._create_dir_circuit(authority=True, purpose='Consensus/PublicKeys downloader')
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/consesus.py", line 278, in _create_dir_circuit
guard = TorGuard(router, purpose=purpose)
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/guard.py", line 66, in __init__
self.__tor_socket.connect()
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/cell_socket.py", line 69, in connect
raise TorSocketConnectError(e)
torpy.cell_socket.TorSocketConnectError: timed out
WARNING:torpy.utils:Retry with another authority...
ERROR:torpy.cell_socket:timed out
ERROR:root:[ignored]
Traceback (most recent call last):
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/cell_socket.py", line 63, in connect
self._socket.connect((self._router.ip, self._router.or_port))
File "/home/dome/miniconda3/lib/python3.8/ssl.py", line 1342, in connect
self._real_connect(addr, False)
File "/home/dome/miniconda3/lib/python3.8/ssl.py", line 1329, in _real_connect
super().connect(addr)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/utils.py", line 78, in newfn
return func(*args, **kwargs)
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/consesus.py", line 152, in renew
raw_string = self.download_consensus(prev_hash)
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/consesus.py", line 306, in download_consensus
with self._get_auth_dir_client() as dir_client:
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/consesus.py", line 287, in _get_auth_dir_client
return self._auth_dir_circuit.create_dir_client()
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/utils.py", line 60, in __get__
value = obj.__dict__[self.func.__name__] = self.func(obj)
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/consesus.py", line 283, in _auth_dir_circuit
self._auth_guard, circuit = self._create_dir_circuit(authority=True, purpose='Consensus/PublicKeys downloader')
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/consesus.py", line 278, in _create_dir_circuit
guard = TorGuard(router, purpose=purpose)
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/guard.py", line 66, in __init__
self.__tor_socket.connect()
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/cell_socket.py", line 69, in connect
raise TorSocketConnectError(e)
torpy.cell_socket.TorSocketConnectError: timed out
WARNING:torpy.utils:Retry with another authority...
ERROR:torpy.cell_socket:timed out
ERROR:root:[ignored]
Traceback (most recent call last):
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/cell_socket.py", line 63, in connect
self._socket.connect((self._router.ip, self._router.or_port))
File "/home/dome/miniconda3/lib/python3.8/ssl.py", line 1342, in connect
self._real_connect(addr, False)
File "/home/dome/miniconda3/lib/python3.8/ssl.py", line 1329, in _real_connect
super().connect(addr)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/utils.py", line 78, in newfn
return func(*args, **kwargs)
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/consesus.py", line 152, in renew
raw_string = self.download_consensus(prev_hash)
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/consesus.py", line 306, in download_consensus
with self._get_auth_dir_client() as dir_client:
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/consesus.py", line 287, in _get_auth_dir_client
return self._auth_dir_circuit.create_dir_client()
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/utils.py", line 60, in __get__
value = obj.__dict__[self.func.__name__] = self.func(obj)
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/consesus.py", line 283, in _auth_dir_circuit
self._auth_guard, circuit = self._create_dir_circuit(authority=True, purpose='Consensus/PublicKeys downloader')
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/consesus.py", line 278, in _create_dir_circuit
guard = TorGuard(router, purpose=purpose)
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/guard.py", line 66, in __init__
self.__tor_socket.connect()
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/cell_socket.py", line 69, in connect
raise TorSocketConnectError(e)
torpy.cell_socket.TorSocketConnectError: timed out
WARNING:torpy.utils:Retry with another authority...
Traceback (most recent call last):
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/cell_socket.py", line 63, in connect
self._socket.connect((self._router.ip, self._router.or_port))
File "/home/dome/miniconda3/lib/python3.8/ssl.py", line 1342, in connect
self._real_connect(addr, False)
File "/home/dome/miniconda3/lib/python3.8/ssl.py", line 1329, in _real_connect
super().connect(addr)
socket.timeout: timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/http/requests.py", line 40, in __enter__
self._tor = TorClient(auth_data=self._auth_data)
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/client.py", line 37, in __init__
self._consensus = consensus or TorConsensus()
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/consesus.py", line 130, in __init__
self.renew()
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/utils.py", line 78, in newfn
return func(*args, **kwargs)
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/consesus.py", line 152, in renew
raw_string = self.download_consensus(prev_hash)
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/consesus.py", line 306, in download_consensus
with self._get_auth_dir_client() as dir_client:
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/consesus.py", line 287, in _get_auth_dir_client
return self._auth_dir_circuit.create_dir_client()
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/utils.py", line 60, in __get__
value = obj.__dict__[self.func.__name__] = self.func(obj)
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/consesus.py", line 283, in _auth_dir_circuit
self._auth_guard, circuit = self._create_dir_circuit(authority=True, purpose='Consensus/PublicKeys downloader')
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/consesus.py", line 278, in _create_dir_circuit
guard = TorGuard(router, purpose=purpose)
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/guard.py", line 66, in __init__
self.__tor_socket.connect()
File "/home/dome/miniconda3/lib/python3.8/site-packages/torpy/cell_socket.py", line 69, in connect
raise TorSocketConnectError(e)
torpy.cell_socket.TorSocketConnectError: timed out
It seems like it came back for me now... It was probably an issue with the guard and not the library itself.
Confirm working on Ubuntu again, but Windows always returning [WinError 10054]
which might have a different reason. I'll open a new Windows specific issue.
The error is a little erratic, a few days ago I was still receiving it and then it worked fine. I'm getting it again right now.
This error has happened several times in the last few days and has been resolved after 4-5 hours automatically, but now it is 7-8 hours that this error still exists
It is a quite unusual error, maybe it's related to the guard (as an upper comment said), it would be interesting to understand why it happens. I saw some issue related to network blocking problem #12 , maybe it's the same kind of error.
I don't think it has to do with network blocking problems, because when one of my torpy crashed on one server, my other torpy, which is completely hosted on a different data center, also crashed.
As far as I understand it can't be a network error, tried with different VPNs as well and failed for all.
DirAuth returns 503 Directory voting, try again later
I believe I know what is the problem is. But need more time to investigate.
DirAuth returns
503 Directory voting, try again later
I believe I know what is the problem is. But need more time to investigate.
Is there a solution to that?
Is there a solution to that?
yes, but need some time to fix it