-
Type: Bug
-
Resolution: Done
-
Priority: Blocker - P1
-
Affects Version/s: 2.3
-
Component/s: Cluster Management
-
None
We always want reads against Mongo to succeed if there is at least one standard or passive node of the replica set alive. However, in DBTCPConnector's call() handling, if an IOException occurs against the chosen DBPort, the logic in _error() that calls checkMaster() will cause an error if the master is also unavailable. This checkMaster() needs to be conditional based on slaveOk being set. That is, if slaveOk is true in the call() method the check should be checkMaster(true, false) so that the list of hosts is refreshed even if it results in no master being found.