diff options
Diffstat (limited to 'jstests/httpinterface/sharding_configdb_on_default_ports.js')
-rw-r--r-- | jstests/httpinterface/sharding_configdb_on_default_ports.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/jstests/httpinterface/sharding_configdb_on_default_ports.js b/jstests/httpinterface/sharding_configdb_on_default_ports.js new file mode 100644 index 00000000000..c11e3ce06af --- /dev/null +++ b/jstests/httpinterface/sharding_configdb_on_default_ports.js @@ -0,0 +1,37 @@ +// This test confirms that mongos interprets host names passed to it via the +// --configdb command line argument *without* a port number as referring to +// processes listening on the config server port (27019) rather than the default +// mongod port of 27017. +// +// That is, mongos --configdb=localhost should look for a config server on port 27019, +// not port 27017. +// +// The test confirms this behavior for 1-node config servers, SCCC config servers and +// CSRS config servers. + +(function() { + "use strict"; + + function getHostPart(hostAndPort) { + return hostAndPort.substr(0, hostAndPort.lastIndexOf(':')); + } + var c1, c2, c3; + + c1 = MongoRunner.runMongod({configsvr: "", port: 27019, replSet: "csrs"}); + assert.commandWorked(c1.adminCommand("replSetInitiate")); + c2 = MongoRunner.runMongod({configsvr: ""}); + c3 = MongoRunner.runMongod({configsvr: ""}); + + var configstrs = [ + getHostPart(c1.host) + "," + c2.host + "," + c3.host, + getHostPart(c1.host), + "csrs/" + getHostPart(c1.host) + ]; + var failureMessages = []; + configstrs.forEach(function (configdb) { + if (!MongoRunner.runMongos({configdb: configdb})) { + failureMessages.push("Failed to start mongos with configdb=\"" + configdb + "\""); + } + }); + assert.eq(0, failureMessages.length, tojson(failureMessages)); +}()); |