The test creates new connections and tries to differentiate them from older collections using the creation timestamp. This all happens on a single thread and there is no concurrency.
From looking at the logs and from comparing to a successful run, it looks like the connections were created in the same microsecond, as returned by mongo::curTimeMicros64() and my suspicion is that on the machine where it ran, the clock resolution was not high enough for the test.
Since the test supports legacy functionality, we shouldn't spent too much time fixing it and should just add a sleep at the beginning of checkNewConns.
A more proper solution would be to use a MockTimeSource and explicitly control the time.
- related to
-
SERVER-50460 Use a mockable time source for shard_connection_tests.cpp
- Backlog
-
SERVER-51471 Make `sharding_legacy_api_test` resilient to inaccurate timers
- Closed