In SERVER-25158, we bumped the configsvr mode number in isMaster when the config server has featureCompatibiliityVersion "3.4". This prevents a 3.2 mongos from starting up against a FCV("3.4") cluster. Existing versions of mongos will get stuck in an infinite loop during sharding initialization as they attempt to connect to the config server replica set:
https://github.com/mongodb/mongo/blob/r3.2.9/src/mongo/s/sharding_initialization.cpp#L185-L213
While looping, the mongos will repeatedly log messages such as the following:
2016-09-22T11:50:42.012-0400 W NETWORK [mongosMain] No primary detected for set test-configRS 2016-09-22T11:50:42.012-0400 I NETWORK [mongosMain] All nodes for set test-configRS are down. This has happened for 5 checks in a row. Polling will stop after 25 more failed checks ... 2016-09-22T11:50:42.513-0400 D - [mongosMain] User Assertion: 28785:Unrecognized configsvr version number: 2. Expected either 0 or 1 2016-09-22T11:50:42.514-0400 D - [replSetDistLockPinger] User Assertion: 28785:Unrecognized configsvr version number: 2. Expected either 0 or 1
Instead, the mongos process should quickly exit with a non-zero exit code and a useful error message, without ever making its routing service available. The error message should display a "MustUpgrade" error code and should link to the documentation for the 3.2=>3.4 upgrade process.
- is depended on by
-
SERVER-26265 Test that 3.2 mongos fails to join a featureCompatibilityVersion("3.4") cluster
- Closed
- is related to
-
SERVER-25158 Prevent a 3.2 mongos from joining a featureCompatibilityVersion("3.4") cluster
- Closed
-
SERVER-29428 Make 3.4 mongod fail gracefully in featureCompatibilityVersion 3.6 cluster
- Closed