diff options
Diffstat (limited to 'src/mongo/db/repl/rs_rollback.cpp')
-rw-r--r-- | src/mongo/db/repl/rs_rollback.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/mongo/db/repl/rs_rollback.cpp b/src/mongo/db/repl/rs_rollback.cpp index 8b8a4d37eca..2bd919e53c6 100644 --- a/src/mongo/db/repl/rs_rollback.cpp +++ b/src/mongo/db/repl/rs_rollback.cpp @@ -97,6 +97,7 @@ using std::unique_ptr; namespace repl { MONGO_FAIL_POINT_DEFINE(rollbackExitEarlyAfterCollectionDrop); +MONGO_FAIL_POINT_DEFINE(rollbackViaRefetchHangCommonPointBeforeReplCommitPoint); using namespace rollback_internal; @@ -1282,6 +1283,14 @@ Status _syncRollback(OperationContext* opCtx, "Rollback common point", "commonPoint"_attr = commonPointOpTime); + // This failpoint is used for testing the invariant below. + if (MONGO_unlikely(rollbackViaRefetchHangCommonPointBeforeReplCommitPoint.shouldFail()) && + (commonPointOpTime.getTimestamp() < lastCommittedOpTime.getTimestamp())) { + LOGV2(6009600, + "Hanging due to rollbackViaRefetchHangCommonPointBeforeReplCommitPoint failpoint"); + rollbackViaRefetchHangCommonPointBeforeReplCommitPoint.pauseWhileSet(opCtx); + } + // Rollback common point should be >= the replication commit point. invariant(commonPointOpTime.getTimestamp() >= lastCommittedOpTime.getTimestamp()); invariant(commonPointOpTime >= lastCommittedOpTime); |