Files
mongo/jstests/replsets/write_concern_bulkWrite_to_local.js
Matt Broadstone 771dabd098 SERVER-81339 Convert ReplSetTest and ShardingTest to modules (#26332)
GitOrigin-RevId: 744aa110a53786b23c62ff53f87a1418b5991e8d
2024-08-20 22:00:49 +00:00

70 lines
2.2 KiB
JavaScript

/**
* Tests that we are silently ignoring writeConcern when we write to local db.
*
* @tags: [
* requires_fcv_80
* ]
*/
import {ReplSetTest} from "jstests/libs/replsettest.js";
import {
restartReplicationOnSecondaries,
stopReplicationOnSecondaries
} from "jstests/libs/write_concern_util.js";
const rst = new ReplSetTest(
{nodes: [{}, {rsConfig: {priority: 0}}], nodeOptions: {setParameter: {logLevel: 1}}});
rst.startSet();
rst.initiate();
const primary = rst.getPrimary();
const secondary = rst.getSecondary();
jsTestLog("Write to local db on the secondary node should succeed.");
secondary.adminCommand({
bulkWrite: 1,
ops: [{insert: 0, document: {x: 1}}, {insert: 1, document: {x: 1}}],
nsInfos: [{ns: "local.test"}, {ns: "local.test1"}]
});
secondary.adminCommand({
bulkWrite: 1,
ops: [{insert: 0, document: {x: 2}}, {insert: 1, document: {x: 2}}],
nsInfos: [{ns: "local.test"}, {ns: "local.test1"}],
writeConcern: {w: 1}
});
secondary.adminCommand({
bulkWrite: 1,
ops: [{insert: 0, document: {x: 3}}, {insert: 1, document: {x: 3}}],
nsInfos: [{ns: "local.test"}, {ns: "local.test1"}],
writeConcern: {w: 2}
});
jsTestLog("Stop replication to prevent primary from satisfying majority write-concern.");
stopReplicationOnSecondaries(rst, false /* changeReplicaSetDefaultWCToLocal */);
// Advance the primary opTime by doing local dummy write.
assert.commandWorked(
rst.getPrimary().getDB("dummy")["dummy"].insert({x: 'dummy'}, {writeConcern: {w: 1}}));
jsTestLog("Write to local db on the primary node should succeed.");
primary.adminCommand({
bulkWrite: 1,
ops: [{insert: 0, document: {x: 4}}, {insert: 1, document: {x: 4}}],
nsInfos: [{ns: "local.test"}, {ns: "local.test1"}]
});
primary.adminCommand({
bulkWrite: 1,
ops: [{insert: 0, document: {x: 5}}, {insert: 1, document: {x: 5}}],
nsInfos: [{ns: "local.test"}, {ns: "local.test1"}],
writeConcern: {w: 1}
});
primary.adminCommand({
bulkWrite: 1,
ops: [{insert: 0, document: {x: 6}}, {insert: 1, document: {x: 6}}],
nsInfos: [{ns: "local.test"}, {ns: "local.test1"}],
writeConcern: {w: 2}
});
restartReplicationOnSecondaries(rst);
rst.stopSet();