diff options
-rw-r--r-- | src/mongo/shell/servers.js | 31 | ||||
-rw-r--r-- | src/mongo/shell/servers_misc.js | 10 |
2 files changed, 39 insertions, 2 deletions
diff --git a/src/mongo/shell/servers.js b/src/mongo/shell/servers.js index 6bfc15d945d..fc536a3cd82 100644 --- a/src/mongo/shell/servers.js +++ b/src/mongo/shell/servers.js @@ -825,7 +825,7 @@ var MongoRunner, _startMongod, startMongoProgram, runMongoProgram, startMongoPro // connecting for up to 30 seconds to handle when the tests are run on a // resource-constrained host machine. if (!opts.hasOwnProperty('dialTimeout') && - MongoRunner.getBinVersionFor(opts.binVersion) === '') { + _toolVersionSupportsDialTimeout(opts.binVersion)) { opts['dialTimeout'] = '30'; } @@ -835,6 +835,35 @@ var MongoRunner, _startMongod, startMongoProgram, runMongoProgram, startMongoPro }; + var _toolVersionSupportsDialTimeout = function(version) { + if (version === "latest" || version === "") { + return true; + } + var versionParts = + convertVersionStringToArray(version).slice(0, 3).map(part => parseInt(part, 10)); + if (versionParts.length === 2) { + versionParts.push(Infinity); + } + + if (versionParts[0] > 3 || (versionParts[0] === 3 && versionParts[1] > 3)) { + // The --dialTimeout command line option is supported by the tools + // with a major version newer than 3.3. + return true; + } + + for (var supportedVersion of["3.3.4", "3.2.5", "3.0.12"]) { + var supportedVersionParts = convertVersionStringToArray(supportedVersion) + .slice(0, 3) + .map(part => parseInt(part, 10)); + if (versionParts[0] === supportedVersionParts[0] && + versionParts[1] === supportedVersionParts[1] && + versionParts[2] >= supportedVersionParts[2]) { + return true; + } + } + return false; + }; + // Given a test name figures out a directory for that test to use for dump files and makes sure // that directory exists and is empty. MongoRunner.getAndPrepareDumpDirectory = function(testName) { diff --git a/src/mongo/shell/servers_misc.js b/src/mongo/shell/servers_misc.js index 6f3defc54a3..d4063d855ee 100644 --- a/src/mongo/shell/servers_misc.js +++ b/src/mongo/shell/servers_misc.js @@ -46,11 +46,14 @@ ToolTest.prototype.runTool = function() { var a = ["mongo" + arguments[0]]; var hasdbpath = false; + var hasDialTimeout = false; for (var i = 1; i < arguments.length; i++) { a.push(arguments[i]); - if (arguments[i] == "--dbpath") + if (arguments[i] === "--dbpath") hasdbpath = true; + if (arguments[i] === "--dialTimeout") + hasDialTimeout = true; } if (!hasdbpath) { @@ -58,6 +61,11 @@ ToolTest.prototype.runTool = function() { a.push("127.0.0.1:" + this.port); } + if (!hasDialTimeout) { + a.push("--dialTimeout"); + a.push("30"); + } + return runMongoProgram.apply(null, a); }; |