EDIT : previous issue resolved in linked ticket.
Mongos should be aware of the current replica set config version, and only update the config seed when this rs config version changes.
Also, we should track hidden nodes, for better handling of cases when all visible nodes need to be reconfigured.
The related bugs SERVER-4731 and SERVER-6512 can cause issues when a node is removed from a replica set in a sharded cluster, without first shutting down the node to be removed.
The symptoms include:
- mongos nodes reporting errors when on requests from client applications and having to be restarted
- config server and replica set configuration errors
While there was not a specific fix for the problem in version 2.2, other changes made in 2.2 mean that the issues this ticket is linked to should not occur in 2.2.x. The related bugs, SERVER-4731 and SERVER-6512, have specific fixes in version 2.2.
This issue is still open for the completion of the more defensive fix mentioned above.
For 2.0.x (< 2.0.8) releases, the workaround is to ensure that you shutdown a node before removing it from a replica set in a sharded environment.
Version 2.0.8 includes a fix for SERVER-6463 which should resolve the actual issues seen by users here.
- depends on
-
SERVER-9034 Return rs config version from isMaster
- Closed
- is related to
-
SERVER-5612 Possible for empty replica set string to be created if all seed down
- Closed
-
SERVER-6512 ReplicaSetMonitor::_checkConnection does not check upper bounds for the indexes
- Closed
- related to
-
SERVER-6463 Mongos sets shard host string to "set/" without any seed members
- Closed
-
SERVER-4731 Removed replica set nodes should not appear as members of the replica set.
- Closed
-
SERVER-6841 Repl set seed list in shard config can become stale and never updated
- Closed
-
SERVER-6972 C++ driver should use isMaster, not replSetGetStatus, to monitor health of a replica set
- Closed