summaryrefslogtreecommitdiff
path: root/jstests/httpinterface/sharding_configdb_on_default_ports.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/httpinterface/sharding_configdb_on_default_ports.js')
-rw-r--r--jstests/httpinterface/sharding_configdb_on_default_ports.js37
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));
+}());