33 lines
1.1 KiB
JavaScript
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();
|
|
})(); |