File tree Expand file tree Collapse file tree 2 files changed +14
-12
lines changed Expand file tree Collapse file tree 2 files changed +14
-12
lines changed Original file line number Diff line number Diff line change @@ -194,10 +194,11 @@ async def test_implicit_sessions_checkout(self):
194
194
# successful connection checkout" test from Driver Sessions Spec.
195
195
succeeded = False
196
196
lsid_set = set ()
197
- failures = 0
198
- for _ in range (5 ):
199
- listener = OvertCommandListener ()
200
- client = await self .async_rs_or_single_client (event_listeners = [listener ], maxPoolSize = 1 )
197
+ listener = OvertCommandListener ()
198
+ client = await self .async_rs_or_single_client (event_listeners = [listener ], maxPoolSize = 1 )
199
+ # Retry up to 10 times because there is a known race that can cause multiple
200
+ # sessions to be used: connection check in happens before session check in
201
+ for _ in range (10 ):
201
202
cursor = client .db .test .find ({})
202
203
ops : List [Tuple [Callable , List [Any ]]] = [
203
204
(client .db .test .find_one , [{"_id" : 1 }]),
@@ -240,9 +241,9 @@ async def target(op, *args):
240
241
if i .command .get ("lsid" ):
241
242
lsid_set .add (i .command .get ("lsid" )["id" ])
242
243
if len (lsid_set ) == 1 :
244
+ # Break on first success.
243
245
succeeded = True
244
- else :
245
- failures += 1
246
+ break
246
247
self .assertTrue (succeeded , lsid_set )
247
248
248
249
async def test_pool_lifo (self ):
Original file line number Diff line number Diff line change @@ -194,10 +194,11 @@ def test_implicit_sessions_checkout(self):
194
194
# successful connection checkout" test from Driver Sessions Spec.
195
195
succeeded = False
196
196
lsid_set = set ()
197
- failures = 0
198
- for _ in range (5 ):
199
- listener = OvertCommandListener ()
200
- client = self .rs_or_single_client (event_listeners = [listener ], maxPoolSize = 1 )
197
+ listener = OvertCommandListener ()
198
+ client = self .rs_or_single_client (event_listeners = [listener ], maxPoolSize = 1 )
199
+ # Retry up to 10 times because there is a known race that can cause multiple
200
+ # sessions to be used: connection check in happens before session check in
201
+ for _ in range (10 ):
201
202
cursor = client .db .test .find ({})
202
203
ops : List [Tuple [Callable , List [Any ]]] = [
203
204
(client .db .test .find_one , [{"_id" : 1 }]),
@@ -240,9 +241,9 @@ def target(op, *args):
240
241
if i .command .get ("lsid" ):
241
242
lsid_set .add (i .command .get ("lsid" )["id" ])
242
243
if len (lsid_set ) == 1 :
244
+ # Break on first success.
243
245
succeeded = True
244
- else :
245
- failures += 1
246
+ break
246
247
self .assertTrue (succeeded , lsid_set )
247
248
248
249
def test_pool_lifo (self ):
You can’t perform that action at this time.
0 commit comments