-
Notifications
You must be signed in to change notification settings - Fork 201
Commit 23f8242
authored
Chain failure causes on routing table fetching failure (#1219)
When a routing driver (`neo4j[+s[sc]]` URL scheme), fails to fetch a routing
table, is swallows all errors from the connection and RT fetching attempts
that lead up to the failure and just reports
```
neo4j.exceptions.ServiceUnavailable: Unable to retrieve routing information
```
This hides the relevant information to the user: why did this fail?
SSL problems, connectivity issues, unsupported server version, ...?
This PR chains all errors (and their causes) as `__cause__` of the top-level
`ServiceUnavailable`. When available an `ExceptionGroup` is used (running on
Python 3.11+), else all errors are flattened into a single cause chain.
```
| ExceptionGroup: All routing table requests failed (4 sub-exceptions)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
| File "/<neo4j-install-path>/neo4j/_async_compat/network/_bolt_socket.py", line 439, in _connect_secure
| s = ssl_context.wrap_socket(s, server_hostname=sni_host)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3.11/ssl.py", line 517, in wrap_socket
| return self.sslsocket_class._create(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3.11/ssl.py", line 1108, in _create
| self.do_handshake()
| File "/usr/lib/python3.11/ssl.py", line 1379, in do_handshake
| self._sslobj.do_handshake()
| ssl.SSLEOFError: [SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1006)
|
| The above exception was the direct cause of the following exception:
|
| Traceback (most recent call last):
| File "/<neo4j-install-path>/neo4j/_sync/io/_bolt_socket.py", line 324, in connect
| s = cls._connect_secure(
| ^^^^^^^^^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_async_compat/network/_bolt_socket.py", line 441, in _connect_secure
| raise BoltSecurityError(
| neo4j._exceptions.BoltSecurityError: [SSLEOFError] Connection Failed. Please ensure that your database is listening on the correct host and port and that you have enabled encryption if required. Note that the default encryption setting has changed in Neo4j 4.0. See the docs for more information. Failed to establish encrypted connection. (code 8: Exec format error)
|
| The above exception was the direct cause of the following exception:
|
| Traceback (most recent call last):
| File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 832, in fetch_routing_table
| new_routing_info = self.fetch_routing_info(
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 791, in fetch_routing_info
| cx = self._acquire(address, auth, deadline, None)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 416, in _acquire
| return connection_creator()
| ^^^^^^^^^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 231, in connection_creator
| connection = self.opener(
| ^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 710, in opener
| return Bolt.open(
| ^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_bolt.py", line 364, in open
| s, protocol_version = BoltSocket.connect(
| ^^^^^^^^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_bolt_socket.py", line 371, in connect
| raise ServiceUnavailable(
| neo4j.exceptions.ServiceUnavailable: Couldn't connect to [::1]:7687 (resolved to ('[::1]:7687',)):
[SSLEOFError] Connection Failed. Please ensure that your database is listening on the correct host and port and that you have enabled encryption if required. Note that the default encryption setting has changed in Neo4j 4.0. See the docs for more information. Failed to establish encrypted connection. (code 8: Exec format error)
+---------------- 2 ----------------
| Traceback (most recent call last):
| File "/<neo4j-install-path>/neo4j/_async_compat/network/_bolt_socket.py", line 439, in _connect_secure
| s = ssl_context.wrap_socket(s, server_hostname=sni_host)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3.11/ssl.py", line 517, in wrap_socket
| return self.sslsocket_class._create(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3.11/ssl.py", line 1108, in _create
| self.do_handshake()
| File "/usr/lib/python3.11/ssl.py", line 1379, in do_handshake
| self._sslobj.do_handshake()
| ssl.SSLEOFError: [SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1006)
|
| The above exception was the direct cause of the following exception:
|
| Traceback (most recent call last):
| File "/<neo4j-install-path>/neo4j/_sync/io/_bolt_socket.py", line 324, in connect
| s = cls._connect_secure(
| ^^^^^^^^^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_async_compat/network/_bolt_socket.py", line 441, in _connect_secure
| raise BoltSecurityError(
| neo4j._exceptions.BoltSecurityError: [SSLEOFError] Connection Failed. Please ensure that your database is listening on the correct host and port and that you have enabled encryption if required. Note that the default encryption setting has changed in Neo4j 4.0. See the docs for more information. Failed to establish encrypted connection. (code 8: Exec format error)
|
| The above exception was the direct cause of the following exception:
|
| Traceback (most recent call last):
| File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 832, in fetch_routing_table
| new_routing_info = self.fetch_routing_info(
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 791, in fetch_routing_info
| cx = self._acquire(address, auth, deadline, None)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 416, in _acquire
| return connection_creator()
| ^^^^^^^^^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 231, in connection_creator
| connection = self.opener(
| ^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 710, in opener
| return Bolt.open(
| ^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_bolt.py", line 364, in open
| s, protocol_version = BoltSocket.connect(
| ^^^^^^^^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_bolt_socket.py", line 371, in connect
| raise ServiceUnavailable(
| neo4j.exceptions.ServiceUnavailable: Couldn't connect to 127.0.0.1:7687 (resolved to ('127.0.0.1:7687',)):
[SSLEOFError] Connection Failed. Please ensure that your database is listening on the correct host and port and that you have enabled encryption if required. Note that the default encryption setting has changed in Neo4j 4.0. See the docs for more information. Failed to establish encrypted connection. (code 8: Exec format error)
+---------------- 3 ----------------
| Traceback (most recent call last):
| File "/<neo4j-install-path>/neo4j/_sync/io/_bolt_socket.py", line 324, in connect
| s = cls._connect_secure(
| ^^^^^^^^^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_async_compat/network/_bolt_socket.py", line 415, in _connect_secure
| raise ServiceUnavailable(
| neo4j.exceptions.ServiceUnavailable: Timed out trying to establish connection to ResolvedIPv4Address(('172.0.0.1', 7687))
|
| The above exception was the direct cause of the following exception:
|
| Traceback (most recent call last):
| File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 832, in fetch_routing_table
| new_routing_info = self.fetch_routing_info(
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 791, in fetch_routing_info
| cx = self._acquire(address, auth, deadline, None)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 416, in _acquire
| return connection_creator()
| ^^^^^^^^^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 231, in connection_creator
| connection = self.opener(
| ^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 710, in opener
| return Bolt.open(
| ^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_bolt.py", line 364, in open
| s, protocol_version = BoltSocket.connect(
| ^^^^^^^^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_bolt_socket.py", line 371, in connect
| raise ServiceUnavailable(
| neo4j.exceptions.ServiceUnavailable: Couldn't connect to 172.0.0.1:7687 (resolved to ('172.0.0.1:7687',)):
Timed out trying to establish connection to ResolvedIPv4Address(('172.0.0.1', 7687))
+---------------- 4 ----------------
| Traceback (most recent call last):
| File "/<neo4j-install-path>/neo4j/_async_compat/network/_bolt_socket.py", line 439, in _connect_secure
| s = ssl_context.wrap_socket(s, server_hostname=sni_host)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3.11/ssl.py", line 517, in wrap_socket
| return self.sslsocket_class._create(
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/usr/lib/python3.11/ssl.py", line 1108, in _create
| self.do_handshake()
| File "/usr/lib/python3.11/ssl.py", line 1379, in do_handshake
| self._sslobj.do_handshake()
| ConnectionResetError: [Errno 104] Connection reset by peer
|
| The above exception was the direct cause of the following exception:
|
| Traceback (most recent call last):
| File "/<neo4j-install-path>/neo4j/_sync/io/_bolt_socket.py", line 324, in connect
| s = cls._connect_secure(
| ^^^^^^^^^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_async_compat/network/_bolt_socket.py", line 441, in _connect_secure
| raise BoltSecurityError(
| neo4j._exceptions.BoltSecurityError: [ConnectionResetError] Connection Failed. Please ensure that your database is listening on the correct host and port and that you have enabled encryption if required. Note that the default encryption setting has changed in Neo4j 4.0. See the docs for more information. Failed to establish encrypted connection. (code 104: Connection reset by peer)
|
| The above exception was the direct cause of the following exception:
|
| Traceback (most recent call last):
| File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 832, in fetch_routing_table
| new_routing_info = self.fetch_routing_info(
| ^^^^^^^^^^^^^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 791, in fetch_routing_info
| cx = self._acquire(address, auth, deadline, None)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 416, in _acquire
| return connection_creator()
| ^^^^^^^^^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 231, in connection_creator
| connection = self.opener(
| ^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 710, in opener
| return Bolt.open(
| ^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_bolt.py", line 364, in open
| s, protocol_version = BoltSocket.connect(
| ^^^^^^^^^^^^^^^^^^^
| File "/<neo4j-install-path>/neo4j/_sync/io/_bolt_socket.py", line 371, in connect
| raise ServiceUnavailable(
| neo4j.exceptions.ServiceUnavailable: Couldn't connect to 34.78.76.49:7687 (resolved to ('34.78.76.49:7687',)):
[ConnectionResetError] Connection Failed. Please ensure that your database is listening on the correct host and port and that you have enabled encryption if required. Note that the default encryption setting has changed in Neo4j 4.0. See the docs for more information. Failed to establish encrypted connection. (code 104: Connection reset by peer)
+------------------------------------
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/alice/main.py", line 180, in <module>
main()
File "/home/alice/main.py", line 50, in main
driver.verify_connectivity()
File "/<neo4j-install-path>/neo4j/_sync/driver.py", line 1054, in verify_connectivity
self._get_server_info(session_config)
File "/<neo4j-install-path>/neo4j/_sync/driver.py", line 1283, in _get_server_info
return session._get_server_info()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/<neo4j-install-path>/neo4j/_sync/work/session.py", line 173, in _get_server_info
self._connect(
File "/<neo4j-install-path>/neo4j/_sync/work/session.py", line 126, in _connect
super()._connect(
File "/<neo4j-install-path>/neo4j/_sync/work/workspace.py", line 160, in _connect
target_db = self._get_routing_target_database(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/<neo4j-install-path>/neo4j/_sync/work/workspace.py", line 234, in _get_routing_target_database
self._pool.update_routing_table(
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 1075, in update_routing_table
raise ServiceUnavailable(
neo4j.exceptions.ServiceUnavailable: Unable to retrieve routing information
```
```
Traceback (most recent call last):
File "/<neo4j-install-path>/neo4j/_async_compat/network/_bolt_socket.py", line 439, in _connect_secure
s = ssl_context.wrap_socket(s, server_hostname=sni_host)
File "/usr/lib/python3.10/ssl.py", line 513, in wrap_socket
return self.sslsocket_class._create(
File "/usr/lib/python3.10/ssl.py", line 1100, in _create
self.do_handshake()
File "/usr/lib/python3.10/ssl.py", line 1371, in do_handshake
self._sslobj.do_handshake()
ssl.SSLEOFError: [SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1007)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/<neo4j-install-path>/neo4j/_sync/io/_bolt_socket.py", line 324, in connect
s = cls._connect_secure(
File "/<neo4j-install-path>/neo4j/_async_compat/network/_bolt_socket.py", line 441, in _connect_secure
raise BoltSecurityError(
neo4j._exceptions.BoltSecurityError: [SSLEOFError] Connection Failed. Please ensure that your database is listening on the correct host and port and that you have enabled encryption if required. Note that the default encryption setting has changed in Neo4j 4.0. See the docs for more information. Failed to establish encrypted connection. (code 8: Exec format error)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 832, in fetch_routing_table
new_routing_info = self.fetch_routing_info(
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 791, in fetch_routing_info
cx = self._acquire(address, auth, deadline, None)
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 416, in _acquire
return connection_creator()
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 231, in connection_creator
connection = self.opener(
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 710, in opener
return Bolt.open(
File "/<neo4j-install-path>/neo4j/_sync/io/_bolt.py", line 364, in open
s, protocol_version = BoltSocket.connect(
File "/<neo4j-install-path>/neo4j/_sync/io/_bolt_socket.py", line 371, in connect
raise ServiceUnavailable(
neo4j.exceptions.ServiceUnavailable: Couldn't connect to [::1]:7687 (resolved to ('[::1]:7687',)):
[SSLEOFError] Connection Failed. Please ensure that your database is listening on the correct host and port and that you have enabled encryption if required. Note that the default encryption setting has changed in Neo4j 4.0. See the docs for more information. Failed to establish encrypted connection. (code 8: Exec format error)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/<neo4j-install-path>/neo4j/_async_compat/network/_bolt_socket.py", line 439, in _connect_secure
s = ssl_context.wrap_socket(s, server_hostname=sni_host)
File "/usr/lib/python3.10/ssl.py", line 513, in wrap_socket
return self.sslsocket_class._create(
File "/usr/lib/python3.10/ssl.py", line 1100, in _create
self.do_handshake()
File "/usr/lib/python3.10/ssl.py", line 1371, in do_handshake
self._sslobj.do_handshake()
ssl.SSLEOFError: [SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1007)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/<neo4j-install-path>/neo4j/_sync/io/_bolt_socket.py", line 324, in connect
s = cls._connect_secure(
File "/<neo4j-install-path>/neo4j/_async_compat/network/_bolt_socket.py", line 441, in _connect_secure
raise BoltSecurityError(
neo4j._exceptions.BoltSecurityError: [SSLEOFError] Connection Failed. Please ensure that your database is listening on the correct host and port and that you have enabled encryption if required. Note that the default encryption setting has changed in Neo4j 4.0. See the docs for more information. Failed to establish encrypted connection. (code 8: Exec format error)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 832, in fetch_routing_table
new_routing_info = self.fetch_routing_info(
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 791, in fetch_routing_info
cx = self._acquire(address, auth, deadline, None)
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 416, in _acquire
return connection_creator()
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 231, in connection_creator
connection = self.opener(
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 710, in opener
return Bolt.open(
File "/<neo4j-install-path>/neo4j/_sync/io/_bolt.py", line 364, in open
s, protocol_version = BoltSocket.connect(
File "/<neo4j-install-path>/neo4j/_sync/io/_bolt_socket.py", line 371, in connect
raise ServiceUnavailable(
neo4j.exceptions.ServiceUnavailable: Couldn't connect to 127.0.0.1:7687 (resolved to ('127.0.0.1:7687',)):
[SSLEOFError] Connection Failed. Please ensure that your database is listening on the correct host and port and that you have enabled encryption if required. Note that the default encryption setting has changed in Neo4j 4.0. See the docs for more information. Failed to establish encrypted connection. (code 8: Exec format error)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/<neo4j-install-path>/neo4j/_sync/io/_bolt_socket.py", line 324, in connect
s = cls._connect_secure(
File "/<neo4j-install-path>/neo4j/_async_compat/network/_bolt_socket.py", line 415, in _connect_secure
raise ServiceUnavailable(
neo4j.exceptions.ServiceUnavailable: Timed out trying to establish connection to ResolvedIPv4Address(('172.0.0.1', 7687))
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 832, in fetch_routing_table
new_routing_info = self.fetch_routing_info(
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 791, in fetch_routing_info
cx = self._acquire(address, auth, deadline, None)
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 416, in _acquire
return connection_creator()
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 231, in connection_creator
connection = self.opener(
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 710, in opener
return Bolt.open(
File "/<neo4j-install-path>/neo4j/_sync/io/_bolt.py", line 364, in open
s, protocol_version = BoltSocket.connect(
File "/<neo4j-install-path>/neo4j/_sync/io/_bolt_socket.py", line 371, in connect
raise ServiceUnavailable(
neo4j.exceptions.ServiceUnavailable: Couldn't connect to 172.0.0.1:7687 (resolved to ('172.0.0.1:7687',)):
Timed out trying to establish connection to ResolvedIPv4Address(('172.0.0.1', 7687))
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/<neo4j-install-path>/neo4j/_async_compat/network/_bolt_socket.py", line 439, in _connect_secure
s = ssl_context.wrap_socket(s, server_hostname=sni_host)
File "/usr/lib/python3.10/ssl.py", line 513, in wrap_socket
return self.sslsocket_class._create(
File "/usr/lib/python3.10/ssl.py", line 1100, in _create
self.do_handshake()
File "/usr/lib/python3.10/ssl.py", line 1371, in do_handshake
self._sslobj.do_handshake()
ConnectionResetError: [Errno 104] Connection reset by peer
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/<neo4j-install-path>/neo4j/_sync/io/_bolt_socket.py", line 324, in connect
s = cls._connect_secure(
File "/<neo4j-install-path>/neo4j/_async_compat/network/_bolt_socket.py", line 441, in _connect_secure
raise BoltSecurityError(
neo4j._exceptions.BoltSecurityError: [ConnectionResetError] Connection Failed. Please ensure that your database is listening on the correct host and port and that you have enabled encryption if required. Note that the default encryption setting has changed in Neo4j 4.0. See the docs for more information. Failed to establish encrypted connection. (code 104: Connection reset by peer)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 832, in fetch_routing_table
new_routing_info = self.fetch_routing_info(
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 791, in fetch_routing_info
cx = self._acquire(address, auth, deadline, None)
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 416, in _acquire
return connection_creator()
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 231, in connection_creator
connection = self.opener(
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 710, in opener
return Bolt.open(
File "/<neo4j-install-path>/neo4j/_sync/io/_bolt.py", line 364, in open
s, protocol_version = BoltSocket.connect(
File "/<neo4j-install-path>/neo4j/_sync/io/_bolt_socket.py", line 371, in connect
raise ServiceUnavailable(
neo4j.exceptions.ServiceUnavailable: Couldn't connect to 34.78.76.49:7687 (resolved to ('34.78.76.49:7687',)):
[ConnectionResetError] Connection Failed. Please ensure that your database is listening on the correct host and port and that you have enabled encryption if required. Note that the default encryption setting has changed in Neo4j 4.0. See the docs for more information. Failed to establish encrypted connection. (code 104: Connection reset by peer)
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "//home/alice/main.py", line 180, in <module>
main()
File "//home/alice/main.py", line 50, in main
driver.verify_connectivity()
File "/<neo4j-install-path>/neo4j/_sync/driver.py", line 1054, in verify_connectivity
self._get_server_info(session_config)
File "/<neo4j-install-path>/neo4j/_sync/driver.py", line 1283, in _get_server_info
return session._get_server_info()
File "/<neo4j-install-path>/neo4j/_sync/work/session.py", line 173, in _get_server_info
self._connect(
File "/<neo4j-install-path>/neo4j/_sync/work/session.py", line 126, in _connect
super()._connect(
File "/<neo4j-install-path>/neo4j/_sync/work/workspace.py", line 160, in _connect
target_db = self._get_routing_target_database(
File "/<neo4j-install-path>/neo4j/_sync/work/workspace.py", line 234, in _get_routing_target_database
self._pool.update_routing_table(
File "/<neo4j-install-path>/neo4j/_sync/io/_pool.py", line 1075, in update_routing_table
raise ServiceUnavailable(
neo4j.exceptions.ServiceUnavailable: Unable to retrieve routing information
```1 parent 258a319 commit 23f8242
File tree
4 files changed
+234
-10
lines changed- src/neo4j
- _async/io
- _sync/io
- tests/unit
- async_/io
- sync/io
4 files changed
+234
-10
lines changedLines changed: 54 additions & 5 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
20 | 20 |
| |
21 | 21 |
| |
22 | 22 |
| |
23 | + | ||
23 | 24 |
| |
24 | 25 |
| |
25 | 26 |
| |
| |||
53 | 54 |
| |
54 | 55 |
| |
55 | 56 |
| |
57 | + | ||
56 | 58 |
| |
57 | 59 |
| |
58 | 60 |
| |
| |||
810 | 812 |
| |
811 | 813 |
| |
812 | 814 |
| |
815 | + | ||
813 | 816 |
| |
814 | 817 |
| |
815 | 818 |
| |
| |||
823 | 826 |
| |
824 | 827 |
| |
825 | 828 |
| |
829 | + | ||
826 | 830 |
| |
827 | 831 |
| |
828 | 832 |
| |
| |||
843 | 847 |
| |
844 | 848 |
| |
845 | 849 |
| |
846 | - | ||
847 | - | ||
850 | + | ||
851 | + | ||
852 | + | ||
853 | + | ||
854 | + | ||
848 | 855 |
| |
849 | 856 |
| |
850 | 857 |
| |
851 | 858 |
| |
852 | 859 |
| |
853 | - | ||
854 | - | ||
855 | 860 |
| |
856 | 861 |
| |
857 | 862 |
| |
| |||
876 | 881 |
| |
877 | 882 |
| |
878 | 883 |
| |
884 | + | ||
885 | + | ||
886 | + | ||
887 | + | ||
888 | + | ||
889 | + | ||
879 | 890 |
| |
880 | 891 |
| |
881 | 892 |
| |
| |||
884 | 895 |
| |
885 | 896 |
| |
886 | 897 |
| |
898 | + | ||
899 | + | ||
900 | + | ||
901 | + | ||
902 | + | ||
903 | + | ||
887 | 904 |
| |
888 | 905 |
| |
889 | 906 |
| |
| |||
898 | 915 |
| |
899 | 916 |
| |
900 | 917 |
| |
918 | + | ||
901 | 919 |
| |
902 | 920 |
| |
903 | 921 |
| |
| |||
924 | 942 |
| |
925 | 943 |
| |
926 | 944 |
| |
945 | + | ||
927 | 946 |
| |
928 | 947 |
| |
929 | 948 |
| |
| |||
973 | 992 |
| |
974 | 993 |
| |
975 | 994 |
| |
995 | + | ||
976 | 996 |
| |
977 | 997 |
| |
978 | 998 |
| |
| |||
997 | 1017 |
| |
998 | 1018 |
| |
999 | 1019 |
| |
1020 | + | ||
1000 | 1021 |
| |
1001 | 1022 |
| |
1002 | 1023 |
| |
| |||
1009 | 1030 |
| |
1010 | 1031 |
| |
1011 | 1032 |
| |
1033 | + | ||
1012 | 1034 |
| |
1013 | 1035 |
| |
1014 | 1036 |
| |
| |||
1022 | 1044 |
| |
1023 | 1045 |
| |
1024 | 1046 |
| |
1047 | + | ||
1025 | 1048 |
| |
1026 | 1049 |
| |
1027 | 1050 |
| |
1028 | 1051 |
| |
1029 | 1052 |
| |
1030 | 1053 |
| |
1031 | 1054 |
| |
1032 | - | ||
1055 | + | ||
1056 | + | ||
1057 | + | ||
1058 | + | ||
1059 | + | ||
1060 | + | ||
1061 | + | ||
1062 | + | ||
1063 | + | ||
1064 | + | ||
1065 | + | ||
1066 | + | ||
1067 | + | ||
1068 | + | ||
1069 | + | ||
1070 | + | ||
1071 | + | ||
1072 | + | ||
1073 | + | ||
1074 | + | ||
1075 | + | ||
1076 | + | ||
1077 | + | ||
1078 | + | ||
1079 | + | ||
1080 | + | ||
1081 | + | ||
1033 | 1082 |
| |
1034 | 1083 |
| |
1035 | 1084 |
| |
|
Lines changed: 54 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
0 commit comments