New sharded connections may fail to connect if any shard has no available primary for an extended period.
This issue is part of 4 related issues which impact cluster availability when there is no primary available for a shard. See
SERVER-7246, SERVER-5625, SERVER-11971 and SERVER-12041 for more details.
When any replica set in a sharded cluster has no available primary, new connections may fail to perform secondary reads due to an initial heuristic shard version check, or initial authorization check.
It is present in versions of MongoDB prior to and including v2.4.8.
Ignore failures of initial version check during connection and allow authorization against secondaries (primary is preferred when available).
In v2.4.9 only (this is set by default in v2.6.0 and later), it is necessary to use the following two startup parameters for mongos:
These parameters can also be set on a MongoS after launch with the following commands
There is no direct work around. You should ensure that your replica sets in sharded clusters have enough redundancy. You should ensure you have robust and fault tolerant underlying architectures (network, WAN hosting, etc).
Production release v2.4.9 contains the fix for this issue, and production release v2.6.0 will contain the fix as well.