summaryrefslogtreecommitdiff
path: root/jstests
diff options
context:
space:
mode:
Diffstat (limited to 'jstests')
-rw-r--r--jstests/multiVersion/0_test_launching.js18
-rw-r--r--jstests/multiVersion/1_test_launching_replset.js39
-rw-r--r--jstests/multiVersion/2_test_launching_cluster.js91
-rw-r--r--jstests/multiVersion/3_upgrade_replset.js4
-rw-r--r--jstests/multiVersion/4_upgrade_cluster.js6
-rw-r--r--jstests/multiVersion/auth_index_upgrade_downgrade.js4
-rw-r--r--jstests/multiVersion/config_version_excludes.js13
-rw-r--r--jstests/multiVersion/libs/verify_versions.js40
-rw-r--r--jstests/multiVersion/upgrade_cluster_v3_to_v4.js12
-rw-r--r--jstests/multiVersion/upgrade_cluster_v3_to_v4_db.js12
-rw-r--r--jstests/multiVersion/upgrade_cluster_v3_to_v4_wait_for_mongos.js71
-rw-r--r--jstests/multiVersion/upgrade_cluster_v3_to_v4_with_parallel_ops.js2
-rw-r--r--jstests/multiVersion/upgrade_cluster_v3_to_v4_with_stale_mongod.js2
13 files changed, 193 insertions, 121 deletions
diff --git a/jstests/multiVersion/0_test_launching.js b/jstests/multiVersion/0_test_launching.js
index 061ee2223d0..c01e3c78fe2 100644
--- a/jstests/multiVersion/0_test_launching.js
+++ b/jstests/multiVersion/0_test_launching.js
@@ -2,17 +2,11 @@
// Tests whether or not multi-version mongos/mongod instances can be launched
//
-var verifyVersion = function( mongo, version ){
-
- var result = mongo.getDB( "admin" ).runCommand({ serverStatus : 1 })
-
- if( result.version != version ) printjson( result )
-
- assert.eq( result.version, version )
-}
+load('./jstests/multiVersion/libs/verify_versions.js');
-var versionsToCheck = [ "1.8.5",
- "2.0.6" ]
+// Check our oldest and newest versions
+var versionsToCheck = [ "1.8",
+ "latest"];
for( var i = 0; i < versionsToCheck.length; i++ ){
@@ -22,8 +16,8 @@ for( var i = 0; i < versionsToCheck.length; i++ ){
var mongos = MongoRunner.runMongos({ binVersion : version, configdb : mongod })
// Make sure the started versions are actually the correct versions
- verifyVersion( mongod, version )
- verifyVersion( mongos, version )
+ assert.binVersion( mongod, version );
+ assert.binVersion( mongos, version );
MongoRunner.stopMongos( mongos )
MongoRunner.stopMongod( mongod )
diff --git a/jstests/multiVersion/1_test_launching_replset.js b/jstests/multiVersion/1_test_launching_replset.js
index a71e4b276c0..b2a7dce68f4 100644
--- a/jstests/multiVersion/1_test_launching_replset.js
+++ b/jstests/multiVersion/1_test_launching_replset.js
@@ -2,18 +2,12 @@
// Tests launching multi-version ReplSetTest replica sets
//
-var verifyVersion = function( mongo, version ){
-
- var result = mongo.getDB( "admin" ).runCommand({ serverStatus : 1 })
-
- if( result.version != version ) printjson( result )
-
- assert.eq( result.version, version )
-}
+// Check our latest versions
+var versionsToCheck = [ "last-stable",
+ "latest" ];
+
+load('./jstests/multiVersion/libs/verify_versions.js');
-var versionsToCheck = [ "1.8.5",
- "2.0.6" ]
-
jsTest.log( "Testing legacy versions..." )
for( var i = 0; i < versionsToCheck.length; i++ ){
@@ -29,7 +23,7 @@ for( var i = 0; i < versionsToCheck.length; i++ ){
var nodes = rst.nodes
// Make sure the started versions are actually the correct versions
- for( var j = 0; j < nodes.length; j++ ) verifyVersion( nodes[j], version )
+ for( var j = 0; j < nodes.length; j++ ) assert.binVersion(nodes[j], version);
rst.stopSet()
}
@@ -44,30 +38,17 @@ rst.startSet({ binVersion : versionsToCheck })
var nodes = rst.nodes
-var getVersion = function( mongo ){
- var result = mongo.getDB( "admin" ).runCommand({ serverStatus : 1 })
- return result.version
-}
-
-var verifyAllVersionsFound = function( versionsFound ){
- for( var j = 0; j < versionsToCheck.length; j++ )
- assert( versionsFound[ versionsToCheck[j] ] )
-}
-
//Make sure we have hosts of all the different versions
-var versionsFound = {}
-for( var j = 0; j < nodes.length; j++ )
- versionsFound[ getVersion( nodes[j] ) ] = true
+var versionsFound = []
+for( var j = 0; j < nodes.length; j++ )
+ versionsFound.push(nodes[j].getBinVersion());
-verifyAllVersionsFound( versionsFound )
+assert.allBinVersions(versionsToCheck, versionsFound);
rst.stopSet()
jsTest.log( "Done!" )
-
-
-
//
// End
//
diff --git a/jstests/multiVersion/2_test_launching_cluster.js b/jstests/multiVersion/2_test_launching_cluster.js
index ed23ff27eff..b186fc8beff 100644
--- a/jstests/multiVersion/2_test_launching_cluster.js
+++ b/jstests/multiVersion/2_test_launching_cluster.js
@@ -2,17 +2,11 @@
// Tests launching multi-version ShardingTest clusters
//
-var verifyVersion = function( mongo, version ){
-
- var result = mongo.getDB( "admin" ).runCommand({ serverStatus : 1 })
-
- if( result.version != version ) printjson( result )
-
- assert.eq( result.version, version )
-}
+load('./jstests/multiVersion/libs/verify_versions.js');
-var versionsToCheck = [ "1.8.5",
- "2.0.6" ]
+// Check our latest versions
+var versionsToCheck = [ "last-stable",
+ "latest" ];
jsTest.log( "Testing legacy versions..." )
@@ -36,9 +30,9 @@ for( var i = 0; i < versionsToCheck.length; i++ ){
var configs = [ st.config0 ]
// Make sure the started versions are actually the correct versions
- for( var j = 0; j < shards.length; j++ ) verifyVersion( shards[j], version )
- for( var j = 0; j < mongoses.length; j++ ) verifyVersion( mongoses[j], version )
- for( var j = 0; j < configs.length; j++ ) verifyVersion( configs[j], version )
+ for( var j = 0; j < shards.length; j++ ) assert.binVersion( shards[j], version );
+ for( var j = 0; j < mongoses.length; j++ ) assert.binVersion( mongoses[j], version );
+ for( var j = 0; j < configs.length; j++ ) assert.binVersion( configs[j], version );
st.stop()
}
@@ -65,34 +59,24 @@ var shards = [ st.shard0, st.shard1 ]
var mongoses = [ st.s0, st.s1 ]
var configs = [ st.config0, st.config1, st.config2 ]
-var getVersion = function( mongo ){
- var result = mongo.getDB( "admin" ).runCommand({ serverStatus : 1 })
- return result.version
-}
-
-var verifyAllVersionsFound = function( versionsFound ){
- for( var j = 0; j < versionsToCheck.length; j++ )
- assert( versionsFound[ versionsToCheck[j] ] )
-}
-
// Make sure we have hosts of all the different versions
-var versionsFound = {}
+var versionsFound = [];
for( var j = 0; j < shards.length; j++ )
- versionsFound[ getVersion( shards[j] ) ] = true
+ versionsFound.push( shards[j].getBinVersion() );
-verifyAllVersionsFound( versionsFound )
+assert.allBinVersions( versionsToCheck, versionsFound );
-versionsFound = {}
+versionsFound = [];
for( var j = 0; j < mongoses.length; j++ )
- versionsFound[ getVersion( mongoses[j] ) ] = true
+ versionsFound.push( mongoses[j].getBinVersion() );
-verifyAllVersionsFound( versionsFound )
+assert.allBinVersions( versionsToCheck, versionsFound );
-versionsFound = {}
+versionsFound = [];
for( var j = 0; j < configs.length; j++ )
- versionsFound[ getVersion( configs[j] ) ] = true
+ versionsFound.push( configs[j].getBinVersion() );
-verifyAllVersionsFound( versionsFound )
+assert.allBinVersions( versionsToCheck, versionsFound );
st.stop()
@@ -128,39 +112,34 @@ var getVersion = function( mongo ){
return result.version
}
-var verifyAllVersionsFound = function( versionsFound ){
- for( var j = 0; j < versionsToCheck.length; j++ )
- assert( versionsFound[ versionsToCheck[j] ] )
-}
-
// Make sure we have hosts of all the different versions
-var versionsFound = {}
+versionsFound = []
for( var j = 0; j < nodesA.length; j++ )
- versionsFound[ getVersion( nodesA[j] ) ] = true
+ versionsFound.push( nodesA[j].getBinVersion() );
-verifyAllVersionsFound( versionsFound )
+assert.allBinVersions( versionsToCheck, versionsFound );
-versionsFound = {}
+versionsFound = []
for( var j = 0; j < nodesB.length; j++ )
- versionsFound[ getVersion( nodesA[j] ) ] = true
+ versionsFound.push( nodesB[j].getBinVersion() );
-verifyAllVersionsFound( versionsFound )
+assert.allBinVersions( versionsToCheck, versionsFound );( versionsFound )
-versionsFound = {}
-for( var j = 0; j < mongoses.length; j++ )
- versionsFound[ getVersion( mongoses[j] ) ] = true
+versionsFound = [];
+for( var j = 0; j < mongoses.length; j++ )
+ versionsFound.push( mongoses[j].getBinVersion() );
-verifyAllVersionsFound( versionsFound )
-
-versionsFound = {}
-for( var j = 0; j < configs.length; j++ )
- versionsFound[ getVersion( configs[j] ) ] = true
-
-verifyAllVersionsFound( versionsFound )
-
-st.stop()
+assert.allBinVersions( versionsToCheck, versionsFound );
+
+versionsFound = [];
+for( var j = 0; j < configs.length; j++ )
+ versionsFound.push( configs[j].getBinVersion() );
-jsTest.log( "Done!" )
+assert.allBinVersions( versionsToCheck, versionsFound );
+
+jsTest.log("DONE!");
+
+st.stop()
//
// End
diff --git a/jstests/multiVersion/3_upgrade_replset.js b/jstests/multiVersion/3_upgrade_replset.js
index f78667901ee..30d9d92601b 100644
--- a/jstests/multiVersion/3_upgrade_replset.js
+++ b/jstests/multiVersion/3_upgrade_replset.js
@@ -5,8 +5,8 @@
load( './jstests/multiVersion/libs/multi_rs.js' )
load( './jstests/libs/test_background_ops.js' )
-var oldVersion = "2.0.6"
-var newVersion = "latest"
+var oldVersion = "2.0"
+var newVersion = "2.2"
var nodes = { n1 : { binVersion : oldVersion },
n2 : { binVersion : oldVersion },
diff --git a/jstests/multiVersion/4_upgrade_cluster.js b/jstests/multiVersion/4_upgrade_cluster.js
index e5beedda96d..25bf15f9312 100644
--- a/jstests/multiVersion/4_upgrade_cluster.js
+++ b/jstests/multiVersion/4_upgrade_cluster.js
@@ -6,8 +6,8 @@ load( './jstests/multiVersion/libs/multi_rs.js' )
load( './jstests/multiVersion/libs/multi_cluster.js' )
load( './jstests/libs/test_background_ops.js' )
-var oldVersion = "2.0.6"
-var newVersion = "latest"
+var oldVersion = "2.0"
+var newVersion = "2.2"
// BIG OUTER LOOP, RS CLUSTER OR NOT!
for( var test = 0; test < 1; test++ ){
@@ -147,4 +147,4 @@ jsTest.log( "DONE!" )
st.stop()
-} // END OUTER LOOP FOR RS CLUSTER \ No newline at end of file
+} // END OUTER LOOP FOR RS CLUSTER
diff --git a/jstests/multiVersion/auth_index_upgrade_downgrade.js b/jstests/multiVersion/auth_index_upgrade_downgrade.js
index 04d75c37e11..ed84f1d6859 100644
--- a/jstests/multiVersion/auth_index_upgrade_downgrade.js
+++ b/jstests/multiVersion/auth_index_upgrade_downgrade.js
@@ -27,8 +27,8 @@
// * Verify that the desired indexes are present.
// * Verify can insert privilege documents that would have conflicted in 2.2 into the database.
-var oldVersion = "2.2.2";
-var newVersion = "latest";
+var oldVersion = "2.2";
+var newVersion = "2.4";
// Raises an exception if "status" is not a GetLastError object indicating success.
function assertGLEOK(status) {
diff --git a/jstests/multiVersion/config_version_excludes.js b/jstests/multiVersion/config_version_excludes.js
index a549b739a59..95682bdbf1e 100644
--- a/jstests/multiVersion/config_version_excludes.js
+++ b/jstests/multiVersion/config_version_excludes.js
@@ -2,6 +2,8 @@
// Test checks whether or not config version excludes prevent mongos startup
//
+load('./jstests/multiVersion/libs/verify_versions.js');
+
jsTest.log( "Starting cluster..." );
var options = {
@@ -28,8 +30,12 @@ var configConnStr = st._configDB;
jsTest.log("Testing excluded mongos versions...")
-configVersion.update({ _id : 1 }, { $addToSet : { excluding : "2.3" } });
-configVersion.update({ _id : 1 }, { $addToSet : { excluding : "2.4" } });
+// Since the version isn't being tested via javascript, we want to find the actual version
+// that "latest" is mapped to.
+// Implicitly, the above cluster is started at "latest" version, so we can check this way.
+var realLatestVersion = mongos.getBinVersion();
+
+configVersion.update({ _id : 1 }, { $addToSet : { excluding : realLatestVersion } });
printjson(configVersion.findOne());
// Make sure down
@@ -39,7 +45,8 @@ assert.eq(null, mongosNew);
jsTest.log("Testing excluded ranges...")
configVersion.update({ _id : 1 }, { $unset : { excluding : 1 } });
-configVersion.update({ _id : 1 }, { $addToSet : { excluding : ["2.3", "2.4"] } });
+configVersion.update({ _id : 1 }, { $addToSet : { excluding : ["1.8",
+ realLatestVersion] } });
printjson(configVersion.findOne());
// Make sure down
diff --git a/jstests/multiVersion/libs/verify_versions.js b/jstests/multiVersion/libs/verify_versions.js
new file mode 100644
index 00000000000..ae381f64508
--- /dev/null
+++ b/jstests/multiVersion/libs/verify_versions.js
@@ -0,0 +1,40 @@
+/**
+ * Helpers for verifying versions of started MongoDB processes
+ */
+
+Mongo.prototype.getBinVersion = function() {
+ var result = this.getDB( "admin" ).runCommand({ serverStatus : 1 })
+ return result.version
+}
+
+// Checks that our mongodb process is of a certain version
+assert.binVersion = function(mongo, version) {
+ var currVersion = mongo.getBinVersion();
+ assert(MongoRunner.areBinVersionsTheSame(MongoRunner.getBinVersionFor(currVersion),
+ MongoRunner.getBinVersionFor(version)),
+ "version " + version + " (" + MongoRunner.getBinVersionFor(version) + ")" +
+ " is not the same as " + currVersion);
+}
+
+
+// Compares an array of desired versions and an array of found versions,
+// looking for versions not found
+assert.allBinVersions = function(versionsWanted, versionsFound) {
+
+ for (var i = 0; i < versionsWanted.length; i++) {
+
+ var found = false;
+ for (var j = 0; j < versionsFound.length; j++) {
+ if (MongoRunner.areBinVersionsTheSame(versionsWanted[i],
+ versionsFound[j]))
+ {
+ found = true;
+ break;
+ }
+ }
+
+ assert(found, "could not find version " +
+ version + " (" + MongoRunner.getBinVersionFor(version) + ")" +
+ " in " + versionsFound);
+ }
+}
diff --git a/jstests/multiVersion/upgrade_cluster_v3_to_v4.js b/jstests/multiVersion/upgrade_cluster_v3_to_v4.js
index fc806ab575d..89b50fefb90 100644
--- a/jstests/multiVersion/upgrade_cluster_v3_to_v4.js
+++ b/jstests/multiVersion/upgrade_cluster_v3_to_v4.js
@@ -41,10 +41,10 @@ var configConnStr = st._configDB;
jsTest.log("Starting v2.4 mongos in 2.0 cluster...")
-var mongos = MongoRunner.runMongos({ binVersion : "latest", configdb : configConnStr })
+var mongos = MongoRunner.runMongos({ binVersion : "2.4", configdb : configConnStr })
assert.eq(null, mongos);
-var mongos = MongoRunner.runMongos({ binVersion : "latest", configdb : configConnStr, upgrade : "" })
+var mongos = MongoRunner.runMongos({ binVersion : "2.4", configdb : configConnStr, upgrade : "" })
assert.eq(null, mongos);
jsTest.log("2.4 mongoses did not start or upgrade in 2.0 cluster (which is correct).")
@@ -101,10 +101,10 @@ st.restartMongoses();
jsTest.log("Starting v2.4 mongos in 2.0/2.2 cluster....")
-var mongos = MongoRunner.runMongos({ binVersion : "latest", configdb : configConnStr })
+var mongos = MongoRunner.runMongos({ binVersion : "2.4", configdb : configConnStr })
assert.eq(null, mongos);
-var mongos = MongoRunner.runMongos({ binVersion : "latest", configdb : configConnStr, upgrade : "" })
+var mongos = MongoRunner.runMongos({ binVersion : "2.4", configdb : configConnStr, upgrade : "" })
assert.eq(null, mongos);
jsTest.log("2.4 mongoses did not start or upgrade in 2.0/2.2 cluster (which is correct).")
@@ -138,10 +138,10 @@ st.restartMongoses();
jsTest.log("Starting v2.4 mongos in 2.2 cluster....")
-var mongos = MongoRunner.runMongos({ binVersion : "latest", configdb : configConnStr })
+var mongos = MongoRunner.runMongos({ binVersion : "2.4", configdb : configConnStr })
assert.eq(null, mongos);
-var mongos = MongoRunner.runMongos({ binVersion : "latest", configdb : configConnStr, upgrade : "" })
+var mongos = MongoRunner.runMongos({ binVersion : "2.4", configdb : configConnStr, upgrade : "" })
assert.neq(null, mongos);
MongoRunner.stopMongos(mongos);
diff --git a/jstests/multiVersion/upgrade_cluster_v3_to_v4_db.js b/jstests/multiVersion/upgrade_cluster_v3_to_v4_db.js
index 2df8e4d8fd7..1ae245e1c03 100644
--- a/jstests/multiVersion/upgrade_cluster_v3_to_v4_db.js
+++ b/jstests/multiVersion/upgrade_cluster_v3_to_v4_db.js
@@ -99,7 +99,7 @@ var checkUpgraded = function() {
jsTest.log("Upgrading empty config server from v3 to v4...");
// Make sure up
-var mongosNew = MongoRunner.runMongos({ binVersion : "latest", configdb : configConnStr, upgrade : "" })
+var mongosNew = MongoRunner.runMongos({ binVersion : "2.4", configdb : configConnStr, upgrade : "" })
assert.neq(null, mongosNew);
MongoRunner.stopMongos(mongosNew);
checkUpgraded();
@@ -117,7 +117,7 @@ config.getMongo().getCollection("config.version").remove({})
assert.eq(null, config.getLastError());
// Make sure down
-var mongosNew = MongoRunner.runMongos({ binVersion : "latest", configdb : configConnStr, upgrade : "" })
+var mongosNew = MongoRunner.runMongos({ binVersion : "2.4", configdb : configConnStr, upgrade : "" })
assert.eq(null, mongosNew);
resetVersion();
resetBackupDBs();
@@ -133,7 +133,7 @@ config.getMongo().getCollection("config.version").update({ _id : 1 }, { $unset :
assert.eq(null, config.getLastError());
// Make sure down
-var mongosNew = MongoRunner.runMongos({ binVersion : "latest", configdb : configConnStr, upgrade : "" })
+var mongosNew = MongoRunner.runMongos({ binVersion : "2.4", configdb : configConnStr, upgrade : "" })
assert.eq(null, mongosNew);
resetVersion();
resetBackupDBs();
@@ -155,7 +155,7 @@ config.collections.update({ _id : coll + "" }, { $set : { lastmodEpoch : ObjectI
assert.eq(null, config.getLastError());
// Make sure down
-var mongosNew = MongoRunner.runMongos({ binVersion : "latest", configdb : configConnStr, upgrade : "" })
+var mongosNew = MongoRunner.runMongos({ binVersion : "2.4", configdb : configConnStr, upgrade : "" })
assert.eq(null, mongosNew);
resetBackupDBs();
@@ -169,7 +169,7 @@ jsTest.log("Adding bad (dropped) sharded collection data...")
config.collections.update({ _id : coll + "" }, { $set : { dropped : true }});
// Make sure up
-var mongosNew = MongoRunner.runMongos({ binVersion : "latest", configdb : configConnStr, upgrade : "" })
+var mongosNew = MongoRunner.runMongos({ binVersion : "2.4", configdb : configConnStr, upgrade : "" })
assert.neq(null, mongosNew);
MongoRunner.stopMongos(mongosNew);
checkUpgraded();
@@ -193,7 +193,7 @@ config.chunks.update({ ns : coll + "" }, { $set : { lastmodEpoch : ObjectId() }}
assert.eq(null, config.getLastError());
// Make sure down
-var mongosNew = MongoRunner.runMongos({ binVersion : "latest", configdb : configConnStr, upgrade : "" })
+var mongosNew = MongoRunner.runMongos({ binVersion : "2.4", configdb : configConnStr, upgrade : "" })
assert.eq(null, mongosNew);
resetBackupDBs();
diff --git a/jstests/multiVersion/upgrade_cluster_v3_to_v4_wait_for_mongos.js b/jstests/multiVersion/upgrade_cluster_v3_to_v4_wait_for_mongos.js
new file mode 100644
index 00000000000..64da139e609
--- /dev/null
+++ b/jstests/multiVersion/upgrade_cluster_v3_to_v4_wait_for_mongos.js
@@ -0,0 +1,71 @@
+/**
+ * Tests upgrading a cluster where there was a recently active mongos process.
+ */
+
+load( './jstests/multiVersion/libs/multi_rs.js' )
+load( './jstests/multiVersion/libs/multi_cluster.js' )
+
+jsTest.log( "Starting 2.2 cluster..." );
+
+var options = {
+
+ mongosOptions : { binVersion : "2.2" },
+ configOptions : { binVersion : "2.2" },
+ shardOptions : { binVersion : "2.2" },
+
+ separateConfig : true,
+ sync : false
+};
+
+var st = new ShardingTest({ shards : 1, mongos : 1, other : options });
+
+var mongos = st.s0;
+
+jsTest.log( "Starting v2.0 mongos..." );
+
+var mongos20 = MongoRunner.runMongos({ binVersion : "2.0", configdb : st._configDB })
+
+jsTest.log( "Waiting for 2.0 ping document..." );
+
+var hasPing = function() {
+ return mongos.getCollection("config.mongos").findOne({ _id : RegExp(":" + mongos20.port + "$") }) != null;
+}
+
+assert.soon( hasPing );
+
+jsTest.log( "Stopping 2.0 mongos..." );
+
+MongoRunner.stopMongos(mongos20);
+
+jsTest.log( "Upgrade should be unsuccessful..." );
+
+// Make sure down
+var mongosNew = MongoRunner.runMongos({ binVersion : "2.4", configdb : st._configDB, upgrade : "" })
+assert.eq(null, mongosNew);
+
+jsTest.log("Resetting time to zero...");
+
+printjson(mongos.getCollection("config.mongos").findOne({ _id : RegExp(":" + mongos20.port + "$") }));
+
+mongos.getCollection("config.mongos").update({ _id : RegExp(":" + mongos20.port + "$") },
+ { $set : { ping : new Date(0) } });
+assert.eq(null, mongos.getDB("config").getLastError());
+
+printjson(mongos.getCollection("config.mongos").findOne({ _id : RegExp(":" + mongos20.port + "$") }));
+
+jsTest.log("Trying to restart mongos...");
+
+// Make sure up
+var mongosNew = MongoRunner.runMongos({ binVersion : "2.4", configdb : st._configDB, upgrade : "" })
+assert.neq(null, mongosNew);
+
+jsTest.log("Mongos started!");
+
+MongoRunner.stopMongos(mongosNew);
+
+jsTest.log("DONE!")
+
+st.stop();
+
+
+
diff --git a/jstests/multiVersion/upgrade_cluster_v3_to_v4_with_parallel_ops.js b/jstests/multiVersion/upgrade_cluster_v3_to_v4_with_parallel_ops.js
index 589966adce4..ec8e459facb 100644
--- a/jstests/multiVersion/upgrade_cluster_v3_to_v4_with_parallel_ops.js
+++ b/jstests/multiVersion/upgrade_cluster_v3_to_v4_with_parallel_ops.js
@@ -179,7 +179,7 @@ jsTest.log("Upgrading config db from v3 to v4...");
var startTime = new Date();
// Make sure up
-var mongosNew = MongoRunner.runMongos({ binVersion : "latest", configdb : configConnStr, upgrade : "" })
+var mongosNew = MongoRunner.runMongos({ binVersion : "2.4", configdb : configConnStr, upgrade : "" })
assert.neq(null, mongosNew);
MongoRunner.stopMongos(mongosNew);
diff --git a/jstests/multiVersion/upgrade_cluster_v3_to_v4_with_stale_mongod.js b/jstests/multiVersion/upgrade_cluster_v3_to_v4_with_stale_mongod.js
index 2455a29f859..b67f15346f0 100644
--- a/jstests/multiVersion/upgrade_cluster_v3_to_v4_with_stale_mongod.js
+++ b/jstests/multiVersion/upgrade_cluster_v3_to_v4_with_stale_mongod.js
@@ -85,7 +85,7 @@ printjson(config.chunks.find().toArray());
jsTest.log("Starting v2.4 mongos in 2.2 cluster....")
-var mongos = MongoRunner.runMongos({ binVersion : "latest", configdb : configConnStr, upgrade : "" })
+var mongos = MongoRunner.runMongos({ binVersion : "2.4", configdb : configConnStr, upgrade : "" })
assert.neq(null, mongos);
MongoRunner.stopMongos(mongos);