summaryrefslogtreecommitdiff
path: root/jstests/replsets
diff options
context:
space:
mode:
authorSamy Lanka <samy.lanka@mongodb.com>2023-04-07 19:32:51 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-04-07 21:22:20 +0000
commitc1ee4c083d7660a5eac103319ad2960ccd5dbf5f (patch)
tree4982ea441a1bddbfbff82781cf1b52698dda2541 /jstests/replsets
parent9d3d599dd1654b17edb19ef48ad1eb081a4ce831 (diff)
downloadmongo-c1ee4c083d7660a5eac103319ad2960ccd5dbf5f.tar.gz
SERVER-67180 Pause startup_recovery_for_restore_needs_rollback.js before expected error
Diffstat (limited to 'jstests/replsets')
-rw-r--r--jstests/replsets/startup_recovery_for_restore_needs_rollback.js21
1 files changed, 20 insertions, 1 deletions
diff --git a/jstests/replsets/startup_recovery_for_restore_needs_rollback.js b/jstests/replsets/startup_recovery_for_restore_needs_rollback.js
index d6c65e67e04..cd44fe575ea 100644
--- a/jstests/replsets/startup_recovery_for_restore_needs_rollback.js
+++ b/jstests/replsets/startup_recovery_for_restore_needs_rollback.js
@@ -124,7 +124,26 @@ assert.docEq({_id: lastId, paddingStr: paddingStr},
clearRawMongoProgramOutput();
jsTestLog("Restarting restore node again, in repl set mode");
-restoreNode = rst.restart(restoreNode, {noReplSet: false, setParameter: startParams});
+restoreNode = rst.restart(restoreNode, {
+ noReplSet: false,
+ setParameter: Object.merge(startParams, {
+ 'failpoint.hangBeforeUnrecoverableRollbackError': tojson({mode: 'alwaysOn'}),
+
+ })
+});
+
+// We need to wait until the node has done enough initialization before waiting on the failpoint.
+rst.waitForState(restoreNode, ReplSetTest.State.ROLLBACK);
+
+assert.commandWorked(restoreNode.adminCommand({
+ waitForFailPoint: 'hangBeforeUnrecoverableRollbackError',
+ timesEntered: 1,
+ maxTimeMS: kDefaultWaitForFailPointTimeout
+}));
+clearRawMongoProgramOutput();
+
+assert.commandWorked(restoreNode.adminCommand(
+ {'configureFailPoint': 'hangBeforeUnrecoverableRollbackError', 'mode': 'off'}));
// This node should not come back up, because it has no stable timestamp to recover to.
assert.soon(() => (rawMongoProgramOutput().search("UnrecoverableRollbackError") >= 0));