summaryrefslogtreecommitdiff
path: root/jstests/replsets/optime.js
diff options
context:
space:
mode:
authorJudah Schvimer <judah@mongodb.com>2020-05-11 15:27:52 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-05-13 20:10:41 +0000
commit8a3c23aa1139c9835223ebecc583ef0e7fca9223 (patch)
treecc30011ca56f40118a35cde58f7828a669918b3b /jstests/replsets/optime.js
parent4f4cc93acec2a7e8d33534ee2b7d70e8203f4a21 (diff)
downloadmongo-8a3c23aa1139c9835223ebecc583ef0e7fca9223.tar.gz
SERVER-48101 Use "j:true" when persistence is enabled in optime.js
Diffstat (limited to 'jstests/replsets/optime.js')
-rw-r--r--jstests/replsets/optime.js22
1 files changed, 18 insertions, 4 deletions
diff --git a/jstests/replsets/optime.js b/jstests/replsets/optime.js
index 6d44c198216..fac4fdd67fc 100644
--- a/jstests/replsets/optime.js
+++ b/jstests/replsets/optime.js
@@ -81,6 +81,10 @@ let initialReplStatusInfo = master.getDB('admin').runCommand({replSetGetStatus:
// Do an insert to increment optime, but without rolling the oplog
// latestOptime should be updated, but earliestOptime should be unchanged
var options = {writeConcern: {w: replTest.nodes.length}};
+if (isPersistent) {
+ // Ensure the durable optime is advanced.
+ options.writeConcern.j = true;
+}
assert.commandWorked(master.getDB('test').foo.insert({a: 1}, options));
assert.soon(function() {
return optimesAndWallTimesAreEqual(replTest, isPersistent);
@@ -90,16 +94,26 @@ var info = master.getDB('admin').serverStatus({oplog: true}).oplog;
var entry = master.getDB('local').oplog.rs.findOne().ts;
jsTest.log("First entry's timestamp is " + tojson(entry));
let replStatusInfo = master.getDB('admin').runCommand({replSetGetStatus: 1});
-assert.gt(timestampCompare(info.latestOptime, initialInfo.latestOptime), 0);
+
+const dumpInfoFn = function() {
+ jsTestLog("Initial server status: " + tojsononeline(initialInfo));
+ jsTestLog("Initial replSetGetStatus: " + tojsononeline(initialReplStatusInfo));
+ jsTestLog("Final server status: " + tojsononeline(info));
+ jsTestLog("Final replSetGetStatus: " + tojsononeline(replStatusInfo));
+};
+
+assert.gt(timestampCompare(info.latestOptime, initialInfo.latestOptime), 0, dumpInfoFn);
assert.gt(wallTimeCompare(replStatusInfo.optimes.lastAppliedWallTime,
initialReplStatusInfo.optimes.lastAppliedWallTime),
- 0);
+ 0,
+ dumpInfoFn);
if (isPersistent) {
assert.gt(wallTimeCompare(replStatusInfo.optimes.lastDurableWallTime,
initialReplStatusInfo.optimes.lastDurableWallTime),
- 0);
+ 0,
+ dumpInfoFn);
}
-assert.eq(timestampCompare(info.earliestOptime, initialInfo.earliestOptime), 0);
+assert.eq(timestampCompare(info.earliestOptime, initialInfo.earliestOptime), 0, dumpInfoFn);
// Insert some large documents to force the oplog to roll over
var largeString = new Array(1024 * 10).toString();