ShardRemote::updateReplSetMonitor marks a host as not master on InterruptedDueToReplStateChange errors. However, a mongos can send a command to the config, which then sends to a shard, and the shard returns the error, but the mongos marks the config server as not master.
This is generally true of all errors that are interpreted as the first contacted server's fault, not any subsequent servers that are called down the line.
This is an issue for existing config commands that forward commands to the shards and return that result (like the balancer!)
- is related to
-
SERVER-26307 MigrationManager can keep a migration document when not in stepdown / shutdown because it can't differentiate between its own error codes and those of the shard with which it communicates
- Closed
-
SERVER-26760 ShardingCatalogManagerImpl::addShard() transparently passes retryable errors upstream
- Closed
-
SERVER-26857 Handle multiple server error propagation in addShard
- Closed
- related to
-
SERVER-46669 moveChunk may succeed but not respect waitForDelete=true if replica set shard primary steps down
- Closed