summaryrefslogtreecommitdiff
path: root/jstests/replsets/initial_sync_oplog_rollover.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/replsets/initial_sync_oplog_rollover.js')
-rw-r--r--jstests/replsets/initial_sync_oplog_rollover.js97
1 files changed, 48 insertions, 49 deletions
diff --git a/jstests/replsets/initial_sync_oplog_rollover.js b/jstests/replsets/initial_sync_oplog_rollover.js
index ba1da0f14a8..7ffe8c98dd4 100644
--- a/jstests/replsets/initial_sync_oplog_rollover.js
+++ b/jstests/replsets/initial_sync_oplog_rollover.js
@@ -8,66 +8,65 @@
*/
(function() {
- "use strict";
- load("jstests/libs/check_log.js");
+"use strict";
+load("jstests/libs/check_log.js");
- var name = 'initial_sync_oplog_rollover';
- var replSet = new ReplSetTest({
- name: name,
- // This test requires a third node (added later) to be syncing when the oplog rolls
- // over. Rolling over the oplog requires a majority of nodes to have confirmed and
- // persisted those writes. Set the syncdelay to one to speed up checkpointing.
- nodeOptions: {syncdelay: 1},
- nodes: [
- {rsConfig: {priority: 1}},
- {rsConfig: {priority: 0}},
- ],
- });
+var name = 'initial_sync_oplog_rollover';
+var replSet = new ReplSetTest({
+ name: name,
+ // This test requires a third node (added later) to be syncing when the oplog rolls
+ // over. Rolling over the oplog requires a majority of nodes to have confirmed and
+ // persisted those writes. Set the syncdelay to one to speed up checkpointing.
+ nodeOptions: {syncdelay: 1},
+ nodes: [
+ {rsConfig: {priority: 1}},
+ {rsConfig: {priority: 0}},
+ ],
+});
- var oplogSizeOnPrimary = 1; // size in MB
- replSet.startSet({oplogSize: oplogSizeOnPrimary});
- replSet.initiate();
- var primary = replSet.getPrimary();
+var oplogSizeOnPrimary = 1; // size in MB
+replSet.startSet({oplogSize: oplogSizeOnPrimary});
+replSet.initiate();
+var primary = replSet.getPrimary();
- var coll = primary.getDB('test').foo;
- assert.writeOK(coll.insert({a: 1}));
+var coll = primary.getDB('test').foo;
+assert.writeOK(coll.insert({a: 1}));
- function getFirstOplogEntry(conn) {
- return conn.getDB('local').oplog.rs.find().sort({$natural: 1}).limit(1)[0];
- }
+function getFirstOplogEntry(conn) {
+ return conn.getDB('local').oplog.rs.find().sort({$natural: 1}).limit(1)[0];
+}
- var firstOplogEntry = getFirstOplogEntry(primary);
+var firstOplogEntry = getFirstOplogEntry(primary);
- // Add a secondary node but make it hang before copying databases.
- var secondary = replSet.add();
- secondary.setSlaveOk();
+// Add a secondary node but make it hang before copying databases.
+var secondary = replSet.add();
+secondary.setSlaveOk();
- assert.commandWorked(secondary.getDB('admin').runCommand(
- {configureFailPoint: 'initialSyncHangBeforeCopyingDatabases', mode: 'alwaysOn'}));
- replSet.reInitiate();
+assert.commandWorked(secondary.getDB('admin').runCommand(
+ {configureFailPoint: 'initialSyncHangBeforeCopyingDatabases', mode: 'alwaysOn'}));
+replSet.reInitiate();
- checkLog.contains(secondary,
- 'initial sync - initialSyncHangBeforeCopyingDatabases fail point enabled');
+checkLog.contains(secondary,
+ 'initial sync - initialSyncHangBeforeCopyingDatabases fail point enabled');
- // Keep inserting large documents until they roll over the oplog.
- const largeStr = new Array(4 * 1024 * oplogSizeOnPrimary).join('aaaaaaaa');
- var i = 0;
- while (bsonWoCompare(getFirstOplogEntry(primary), firstOplogEntry) === 0) {
- assert.writeOK(coll.insert({a: 2, x: i++, long_str: largeStr}));
- sleep(100);
- }
+// Keep inserting large documents until they roll over the oplog.
+const largeStr = new Array(4 * 1024 * oplogSizeOnPrimary).join('aaaaaaaa');
+var i = 0;
+while (bsonWoCompare(getFirstOplogEntry(primary), firstOplogEntry) === 0) {
+ assert.writeOK(coll.insert({a: 2, x: i++, long_str: largeStr}));
+ sleep(100);
+}
- assert.commandWorked(secondary.getDB('admin').runCommand(
- {configureFailPoint: 'initialSyncHangBeforeCopyingDatabases', mode: 'off'}));
+assert.commandWorked(secondary.getDB('admin').runCommand(
+ {configureFailPoint: 'initialSyncHangBeforeCopyingDatabases', mode: 'off'}));
- replSet.awaitSecondaryNodes(200 * 1000);
+replSet.awaitSecondaryNodes(200 * 1000);
- assert.eq(i,
- secondary.getDB('test').foo.count({a: 2}),
- 'collection successfully synced to secondary');
+assert.eq(
+ i, secondary.getDB('test').foo.count({a: 2}), 'collection successfully synced to secondary');
- assert.eq(0,
- secondary.getDB('local')['temp_oplog_buffer'].find().itcount(),
- "Oplog buffer was not dropped after initial sync");
- replSet.stopSet();
+assert.eq(0,
+ secondary.getDB('local')['temp_oplog_buffer'].find().itcount(),
+ "Oplog buffer was not dropped after initial sync");
+replSet.stopSet();
})();