The mongo config server should not enable key generation until the featureCompatibilityVersion = 3.6 is set
The mongo should not write to oplog until featureCompatibilityVersion = 3.6 is set. For the sharded cluster the featureCompatibilityVersion is sent to mongos and it in turn send it to config servers and shards.
The existing multiversion test suite. https://github.com/mongodb/mongo/blob/master/jstests/multiVersion/upgrade_cluster.js
starts with last-stable binary = 3.4 and upgrades it to the latest = current master.
upgrade order is
config servers
shards
mongos
need to add a test case where
once the config servers are upgraded it verifies that
- config returns dummy signed $logicalTime and operation time
- mongod and mongos ignore afterClusterTime that can be sent by mongo shell
once mongod is upgraded
- mongod returns dummy signed $logicalTime and operation time
- mongod and mongos ignore afterClusterTime that can be sent by mongo shell
once mongos are upgraded and
- mongod and mongos returns dummy signed $logicalTime and operation time
- mongod and mongos ignore afterClusterTime that can be sent by mongo shell
once featureCompatibilityVersion = 3.6 is set
- mongos and mongod correctly process causally consistent requests
the downgrade should check this in reverse.