|
See https://github.com/mongodb/specifications/blob/master/source/server-discovery-and-monitoring/server-discovery-and-monitoring.rst#updaterswithoutprimary.
Given the behavior specified here, it's possible for get-more/kill-cursor requests to fail in the following scenario:
- Create MongoClient with a seed list with IP addresses for a replica set with host names as normal DNS names.
- Execute a query with a non-primary read preference
- Execute a get-more for that query
This can happen because server selection will succeed against a seed list host that reports itself as a secondary, but by the time the get-more executes, the primary has identified itself and the driver has replaced all the ip-address-specified seed list hosts with the host names from the primary's server description. The result is that server selection fails for the get-more, as the topology has "forgotten" about the seed list hosts.
There is now an automated test for this included in the SDAM specification. You'll pick it up with this tag.
|