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):
194194 # successful connection checkout" test from Driver Sessions Spec.
195195 succeeded = False
196196 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 ):
201202 cursor = client .db .test .find ({})
202203 ops : List [Tuple [Callable , List [Any ]]] = [
203204 (client .db .test .find_one , [{"_id" : 1 }]),
@@ -240,9 +241,9 @@ async def target(op, *args):
240241 if i .command .get ("lsid" ):
241242 lsid_set .add (i .command .get ("lsid" )["id" ])
242243 if len (lsid_set ) == 1 :
244+ # Break on first success.
243245 succeeded = True
244- else :
245- failures += 1
246+ break
246247 self .assertTrue (succeeded , lsid_set )
247248
248249 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):
194194 # successful connection checkout" test from Driver Sessions Spec.
195195 succeeded = False
196196 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 ):
201202 cursor = client .db .test .find ({})
202203 ops : List [Tuple [Callable , List [Any ]]] = [
203204 (client .db .test .find_one , [{"_id" : 1 }]),
@@ -240,9 +241,9 @@ def target(op, *args):
240241 if i .command .get ("lsid" ):
241242 lsid_set .add (i .command .get ("lsid" )["id" ])
242243 if len (lsid_set ) == 1 :
244+ # Break on first success.
243245 succeeded = True
244- else :
245- failures += 1
246+ break
246247 self .assertTrue (succeeded , lsid_set )
247248
248249 def test_pool_lifo (self ):
You can’t perform that action at this time.
0 commit comments