summaryrefslogtreecommitdiff
path: root/jstests/multiVersion
diff options
context:
space:
mode:
authorPavi Vetriselvan <pavithra.vetriselvan@mongodb.com>2021-01-05 14:42:22 -0500
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-01-14 16:24:05 +0000
commit3a4dda6f0dc7f32e91310b9256cd3b499f7715d2 (patch)
tree5af626ca14786bf79c71fb487cf92861b9a1b7a6 /jstests/multiVersion
parentaaa6470f8e380579e86db9d0d0f5e81faea7e2fa (diff)
downloadmongo-3a4dda6f0dc7f32e91310b9256cd3b499f7715d2.tar.gz
SERVER-53247 Remove EMRC=false targeted jstests/unittests
Diffstat (limited to 'jstests/multiVersion')
-rw-r--r--jstests/multiVersion/genericSetFCVUsage/downgrade_after_rollback_via_refetch.js81
1 files changed, 0 insertions, 81 deletions
diff --git a/jstests/multiVersion/genericSetFCVUsage/downgrade_after_rollback_via_refetch.js b/jstests/multiVersion/genericSetFCVUsage/downgrade_after_rollback_via_refetch.js
deleted file mode 100644
index 12b9dd435f3..00000000000
--- a/jstests/multiVersion/genericSetFCVUsage/downgrade_after_rollback_via_refetch.js
+++ /dev/null
@@ -1,81 +0,0 @@
-// When enableMajorityReadConcern=false, a node transitions from ROLLBACK to RECOVERING with an
-// unstable checkpoint with appliedThrough set to the common point. Test that if the node crashes
-// and restarts with the downgraded version before its next stable checkpoint, then oplog entries
-// after the common point are replayed.
-(function() {
-"use strict";
-
-load("jstests/replsets/libs/rollback_test.js");
-
-TestData.rollbackShutdowns = true;
-TestData.allowUncleanShutdowns = true;
-let name = "downgrade_after_rollback_via_refetch";
-let dbName = "test";
-let sourceCollName = "coll";
-
-function testDowngrade(enableMajorityReadConcern, downgradeVersion) {
- jsTest.log("Test downgrade with enableMajorityReadConcern=" + enableMajorityReadConcern +
- " and downgradeVersion: " + downgradeVersion);
- const downgradeFCV = binVersionToFCV(downgradeVersion);
- // Set up Rollback Test.
- let replTest = new ReplSetTest(
- {name, nodes: 3, useBridge: true, nodeOptions: {enableMajorityReadConcern: "false"}});
- replTest.startSet();
- let config = replTest.getReplSetConfig();
- config.members[2].priority = 0;
- config.settings = {chainingAllowed: false};
- replTest.initiateWithHighElectionTimeout(config);
- let rollbackTest = new RollbackTest(name, replTest);
-
- // Set the featureCompatibilityVersion to the downgraded version, so that we can downgrade
- // the rollback node.
- assert.commandWorked(
- rollbackTest.getPrimary().adminCommand({setFeatureCompatibilityVersion: downgradeFCV}));
-
- let rollbackNode = rollbackTest.transitionToRollbackOperations();
-
- // Turn off stable checkpoints on the rollback node.
- assert.commandWorked(
- rollbackNode.adminCommand({configureFailPoint: "disableSnapshotting", mode: "alwaysOn"}));
-
- // Wait for a rollback to finish.
- rollbackTest.transitionToSyncSourceOperationsBeforeRollback();
- rollbackTest.transitionToSyncSourceOperationsDuringRollback();
- rollbackTest.transitionToSteadyStateOperations();
-
- // Replicate a new operation to the rollback node. Replication is disabled on the tiebreaker
- // node, so a successful majority write guarantees the write has replicated to the rollback
- // node.
- assert.commandWorked(rollbackTest.getPrimary().getDB(dbName)[sourceCollName].insert(
- {_id: 0}, {writeConcern: {w: "majority"}}));
- assert.eq(rollbackNode.getDB(dbName)[sourceCollName].find({_id: 0}).itcount(), 1);
-
- // SERVER-47219: The following unclean shutdown followed by a restart into downgradeVersion is
- // not a legal downgrade scenario. However, this illegal downgrade is only prevented when a
- // change across versions requires it. There exists a patch for this test in v4.4 when illegal
- // downgrades are prevented. The patch for that case however requires demonstrating the illegal
- // downgrade is prevented as expected. Applying that here results in a hang. The testing
- // infrastructure for running mongod processes in sufficiently complex scenarios, cannot express
- // both expecting a startup to fail with an error as well as failing immediately if startup
- // succeeds.
- //
- // If this test starts failing on the restart below due to an illegal downgrade, forward-porting
- // the v4.4 patch for SERVER-47219 should be the first thing to try.
- //
- // Kill the rollback node and restart it on the downgraded version.
- rollbackTest.restartNode(
- 0, 9, {binVersion: downgradeVersion, enableMajorityReadConcern: enableMajorityReadConcern});
- replTest.awaitSecondaryNodes();
-
- // The rollback node should replay the new operation.
- rollbackNode = rollbackTest.getSecondary();
- assert.eq(rollbackNode.getDB(dbName)[sourceCollName].find({_id: 0}).itcount(), 1);
-
- rollbackTest.stop();
-}
-
-testDowngrade("true", "last-lts");
-testDowngrade("false", "last-lts");
-testDowngrade("true", "last-continuous");
-testDowngrade("false", "last-continuous");
-})();