Files
mongo/jstests/replsets/initial_sync_read_concern_no_oplog.js

33 lines
1.1 KiB
JavaScript

// Test that if an afterClusterTime query is issued to a node in initial sync that has not yet
// created its oplog, the node returns an error rather than crashing.
(function() {
'use strict';
load('jstests/libs/check_log.js');
const replSet = new ReplSetTest({nodes: 1});
replSet.startSet();
replSet.initiate();
const primary = replSet.getPrimary();
const secondary = replSet.add();
assert.commandWorked(secondary.adminCommand(
{configureFailPoint: 'initialSyncHangBeforeCreatingOplog', mode: 'alwaysOn'}));
replSet.reInitiate();
checkLog.contains(secondary,
'initial sync - initialSyncHangBeforeCreatingOplog fail point enabled');
assert.commandFailedWithCode(
secondary.getDB('local').runCommand(
{find: 'coll', limit: 1, readConcern: {afterClusterTime: Timestamp(1, 1)}}),
ErrorCodes.NotYetInitialized);
assert.commandWorked(secondary.adminCommand(
{configureFailPoint: 'initialSyncHangBeforeCreatingOplog', mode: 'off'}));
replSet.awaitReplication();
replSet.awaitSecondaryNodes();
replSet.stopSet();
})();