Skip to content

Commit f4958ea

Browse files
cherry pick propagate connection error to defunct function (#466) (#468)
1 parent 7e3d9cc commit f4958ea

File tree

2 files changed

+28
-6
lines changed

2 files changed

+28
-6
lines changed

neo4j/io/_bolt3.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,8 @@ def _set_defunct(self, error=None):
343343
message = ("Failed to read from defunct connection {!r} ({!r})".format(
344344
self.unresolved_address, self.server_info.address))
345345

346+
if error:
347+
log.error(str(error))
346348
log.error(message)
347349
# We were attempting to receive data but the connection
348350
# has unexpectedly terminated. So, we need to close the
@@ -357,12 +359,21 @@ def _set_defunct(self, error=None):
357359
# unable to confirm that the COMMIT completed successfully.
358360
for response in self.responses:
359361
if isinstance(response, CommitResponse):
360-
raise BoltIncompleteCommitError(message, address=None)
362+
if error:
363+
raise BoltIncompleteCommitError(message, address=None) from error
364+
else:
365+
raise BoltIncompleteCommitError(message, address=None)
361366

362367
if direct_driver:
363-
raise ServiceUnavailable(message)
368+
if error:
369+
raise ServiceUnavailable(message) from error
370+
else:
371+
raise ServiceUnavailable(message)
364372
else:
365-
raise SessionExpired(message)
373+
if error:
374+
raise SessionExpired(message) from error
375+
else:
376+
raise SessionExpired(message)
366377

367378
def timedout(self):
368379
return 0 <= self._max_connection_lifetime <= perf_counter() - self._creation_timestamp

neo4j/io/_bolt4x0.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -347,6 +347,8 @@ def _set_defunct(self, error=None):
347347
message = ("Failed to read from defunct connection {!r} ({!r})".format(
348348
self.unresolved_address, self.server_info.address))
349349

350+
if error:
351+
log.error(str(error))
350352
log.error(message)
351353
# We were attempting to receive data but the connection
352354
# has unexpectedly terminated. So, we need to close the
@@ -361,12 +363,21 @@ def _set_defunct(self, error=None):
361363
# unable to confirm that the COMMIT completed successfully.
362364
for response in self.responses:
363365
if isinstance(response, CommitResponse):
364-
raise BoltIncompleteCommitError(message, address=None)
366+
if error:
367+
raise BoltIncompleteCommitError(message, address=None) from error
368+
else:
369+
raise BoltIncompleteCommitError(message, address=None)
365370

366371
if direct_driver:
367-
raise ServiceUnavailable(message)
372+
if error:
373+
raise ServiceUnavailable(message) from error
374+
else:
375+
raise ServiceUnavailable(message)
368376
else:
369-
raise SessionExpired(message)
377+
if error:
378+
raise SessionExpired(message) from error
379+
else:
380+
raise SessionExpired(message)
370381

371382
def timedout(self):
372383
return 0 <= self._max_connection_lifetime <= perf_counter() - self._creation_timestamp

0 commit comments

Comments
 (0)