blob: e52ac1faa06a592f7fe36187ca6c571234c4ffb7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
// 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();
})();
|