Files
mongo/jstests/replsets/reconfig_errors_on_improper_host_value.js
Zac 591928c619 SERVER-108478 JS formatted by prettier and remove clang-format (#39656)
GitOrigin-RevId: 6c8f6aded47f260aa4f7c231b17dae3302cb1e04
2025-08-21 17:27:09 +00:00

50 lines
1.7 KiB
JavaScript

/**
* ReplSetReconfig should error out if any of the members in the replica set have a
* 'host' field that contains a connection string.
*/
import {ReplSetTest} from "jstests/libs/replsettest.js";
const rst = new ReplSetTest({nodes: 3});
rst.startSet();
rst.initiate();
const primary = rst.getPrimary();
// Achieve steady state replication.
assert.commandWorked(primary.getDB(jsTestName())["test"].insert({x: 1}, {writeConcern: {w: 3}}));
rst.awaitReplication();
// Store proper host values.
let config = primary.getDB("local").system.replset.findOne();
const memberZeroHostValue = config.members[0].host;
const memberOneHostValue = config.members[1].host;
const memberTwoHostValue = config.members[2].host;
// Populate host field with connection string and expect a reconfig failure.
config.members[2].host = "mongodb://host/?replicaSet=rs";
config.version++;
assert.commandFailedWithCode(
primary.adminCommand({replSetReconfig: config}),
ErrorCodes.InvalidReplicaSetConfig,
"Reconfig Should Fail",
);
// Verify that using connection string for all members' host fields fails.
config.members[1].host = "mongodb://host/?replicaSet=rs";
config.members[0].host = "mongodb://host/?replicaSet=rs";
config.version++;
assert.commandFailedWithCode(
primary.adminCommand({replSetReconfig: config}),
ErrorCodes.InvalidReplicaSetConfig,
"Reconfig Should Fail",
);
// Sanity check that resetting member's host fields to proper host value makes reconfig work.
config.members[0].host = memberZeroHostValue;
config.members[1].host = memberOneHostValue;
config.members[2].host = memberTwoHostValue;
config.version++;
assert.commandWorked(primary.adminCommand({replSetReconfig: config}));
rst.stopSet();