diff options
author | Xiangyu Yao <xiangyu.yao@mongodb.com> | 2017-11-07 14:48:56 -0500 |
---|---|---|
committer | Xiangyu Yao <xiangyu.yao@mongodb.com> | 2017-11-10 10:49:12 -0500 |
commit | 07c34da05d049282a41e84282d6755149127e4b7 (patch) | |
tree | ee0fe00511d99af4ec3a1f78393001df8256d28c /jstests/multiVersion | |
parent | eaf6c96f4893946cd62d6565d3aab92901b92ad8 (diff) | |
download | mongo-07c34da05d049282a41e84282d6755149127e4b7.tar.gz |
SERVER-31740 Make setFeatureCompatibilityVersion idempotent
Diffstat (limited to 'jstests/multiVersion')
-rw-r--r-- | jstests/multiVersion/set_feature_compatibility_version.js | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/jstests/multiVersion/set_feature_compatibility_version.js b/jstests/multiVersion/set_feature_compatibility_version.js index 2ee29b36404..83c88ec77f5 100644 --- a/jstests/multiVersion/set_feature_compatibility_version.js +++ b/jstests/multiVersion/set_feature_compatibility_version.js @@ -398,6 +398,30 @@ TestData.skipCheckingUUIDsConsistentAcrossCluster = true; assert.eq(res.featureCompatibilityVersion.targetVersion, null, tojson(res)); rst.stopSet(); + // Test idempotency for setFeatureCompatibilityVersion. + rst = new ReplSetTest({nodes: 2, nodeOpts: {binVersion: latest}}); + rst.startSet(); + rst.initiate(); + + // Set FCV to 3.4 so that a 3.4 node can join the set. + primary = rst.getPrimary(); + assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: downgrade})); + rst.awaitReplication(); + + // Add a 3.4 node to the set. + secondary = rst.add({binVersion: downgrade}); + rst.reInitiate(); + + // Ensure the 3.4 node succeeded its initial sync. + assert.writeOK(primary.getDB("test").coll.insert({awaitRepl: true}, {writeConcern: {w: 3}})); + + // Run {setFCV: "3.4"}. This should be idempotent. + assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: downgrade})); + rst.awaitReplication(); + + // Ensure the secondary is still running. + rst.stopSet(); + // // Sharding tests. // |