[SERVER-26264] Make 3.2 mongos fail gracefully on startup when cluster is featureCompatibilityVersion("3.4") Created: 22/Sep/16  Updated: 15/Jun/17  Resolved: 23/Sep/16

Status: Closed
Project: Core Server
Component/s: Querying, Sharding
Affects Version/s: None
Fix Version/s: 3.2.10

Type: Bug Priority: Major - P3
Reporter: David Storch Assignee: David Storch
Resolution: Done Votes: 0
Labels: code-only
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-26265 Test that 3.2 mongos fails to join a ... Closed
Documented
is documented by DOCS-8895 Make 3.2 mongos fail gracefully on st... Closed
Related
is related to SERVER-25158 Prevent a 3.2 mongos from joining a f... Closed
is related to SERVER-29428 Make 3.4 mongod fail gracefully in fe... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: Query 2016-10-10
Participants:

 Description   

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.



 Comments   
Comment by Githook User [ 23/Sep/16 ]

Author:

{u'username': u'dstorch', u'name': u'David Storch', u'email': u'david.storch@10gen.com'}

Message: SERVER-26264 fail gracefully when attempting to join a cluster with featureCompatibilityVersion 3.4
Branch: v3.2
https://github.com/mongodb/mongo/commit/7026ff8dbc62b9649e8be1793d3273d9cc162174

Generated at Thu Feb 08 04:11:36 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.