Skip to content

Commit b5f0104

Browse files
authored
PYTHON-4980 Ignore network error on killAllSessions (mongodb#2011)
1 parent ddf783b commit b5f0104

File tree

4 files changed

+12
-6
lines changed

4 files changed

+12
-6
lines changed

test/asynchronous/unified_format.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676
from pymongo.asynchronous.helpers import anext
7777
from pymongo.encryption_options import _HAVE_PYMONGOCRYPT
7878
from pymongo.errors import (
79+
AutoReconnect,
7980
BulkWriteError,
8081
ClientBulkWriteException,
8182
ConfigurationError,
@@ -755,9 +756,10 @@ async def kill_all_sessions(self):
755756
for client in clients:
756757
try:
757758
await client.admin.command("killAllSessions", [])
758-
except OperationFailure:
759+
except (OperationFailure, AutoReconnect):
759760
# "operation was interrupted" by killing the command's
760761
# own session.
762+
# On 8.0+ killAllSessions sometimes returns a network error.
761763
pass
762764

763765
async def _databaseOperation_listCollections(self, target, *args, **kwargs):

test/asynchronous/utils_spec_runner.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
from pymongo.asynchronous import client_session
4747
from pymongo.asynchronous.command_cursor import AsyncCommandCursor
4848
from pymongo.asynchronous.cursor import AsyncCursor
49-
from pymongo.errors import BulkWriteError, OperationFailure, PyMongoError
49+
from pymongo.errors import AutoReconnect, BulkWriteError, OperationFailure, PyMongoError
5050
from pymongo.read_concern import ReadConcern
5151
from pymongo.read_preferences import ReadPreference
5252
from pymongo.results import BulkWriteResult, _WriteResult
@@ -343,9 +343,10 @@ async def kill_all_sessions(self):
343343
for client in clients:
344344
try:
345345
await client.admin.command("killAllSessions", [])
346-
except OperationFailure:
346+
except (OperationFailure, AutoReconnect):
347347
# "operation was interrupted" by killing the command's
348348
# own session.
349+
# On 8.0+ killAllSessions sometimes returns a network error.
349350
pass
350351

351352
def check_command_result(self, expected_result, result):

test/unified_format.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
from pymongo import ASCENDING, CursorType, MongoClient, _csot
7070
from pymongo.encryption_options import _HAVE_PYMONGOCRYPT
7171
from pymongo.errors import (
72+
AutoReconnect,
7273
BulkWriteError,
7374
ClientBulkWriteException,
7475
ConfigurationError,
@@ -751,9 +752,10 @@ def kill_all_sessions(self):
751752
for client in clients:
752753
try:
753754
client.admin.command("killAllSessions", [])
754-
except OperationFailure:
755+
except (OperationFailure, AutoReconnect):
755756
# "operation was interrupted" by killing the command's
756757
# own session.
758+
# On 8.0+ killAllSessions sometimes returns a network error.
757759
pass
758760

759761
def _databaseOperation_listCollections(self, target, *args, **kwargs):

test/utils_spec_runner.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
from bson.son import SON
4444
from gridfs import GridFSBucket
4545
from gridfs.synchronous.grid_file import GridFSBucket
46-
from pymongo.errors import BulkWriteError, OperationFailure, PyMongoError
46+
from pymongo.errors import AutoReconnect, BulkWriteError, OperationFailure, PyMongoError
4747
from pymongo.read_concern import ReadConcern
4848
from pymongo.read_preferences import ReadPreference
4949
from pymongo.results import BulkWriteResult, _WriteResult
@@ -343,9 +343,10 @@ def kill_all_sessions(self):
343343
for client in clients:
344344
try:
345345
client.admin.command("killAllSessions", [])
346-
except OperationFailure:
346+
except (OperationFailure, AutoReconnect):
347347
# "operation was interrupted" by killing the command's
348348
# own session.
349+
# On 8.0+ killAllSessions sometimes returns a network error.
349350
pass
350351

351352
def check_command_result(self, expected_result, result):

0 commit comments

Comments
 (0)