-
Type:
Bug
-
Resolution: Works as Designed
-
Priority:
Minor - P4
-
None
-
Affects Version/s: None
-
Component/s: SDAM
-
🔵 Done
-
Python Drivers
-
None
-
None
-
None
-
None
-
None
-
None
The sdam spec specifies that errors encountered before the handshake is complete must only clear the pool if they are network timeout or authentication step errors.
In pymongo's topology code, we clear the pool on any unknown operation failure occurring before the handshake, which includes the hello() message.
I verified that there are no unified tests expecting this behavior, by removing that pool clear logic and finding that the only two failures occurred during the authentication step.
We should update the logic to distinguish between a failure during the authentication step and one during the hello message.