diff options
Diffstat (limited to 'src/mongo/db/storage/ephemeral_for_test/ephemeral_for_test_recovery_unit.cpp')
-rw-r--r-- | src/mongo/db/storage/ephemeral_for_test/ephemeral_for_test_recovery_unit.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mongo/db/storage/ephemeral_for_test/ephemeral_for_test_recovery_unit.cpp b/src/mongo/db/storage/ephemeral_for_test/ephemeral_for_test_recovery_unit.cpp index 307c6e79078..252b3a0616e 100644 --- a/src/mongo/db/storage/ephemeral_for_test/ephemeral_for_test_recovery_unit.cpp +++ b/src/mongo/db/storage/ephemeral_for_test/ephemeral_for_test_recovery_unit.cpp @@ -42,6 +42,7 @@ namespace mongo { namespace ephemeral_for_test { namespace { MONGO_FAIL_POINT_DEFINE(EFTAlwaysThrowWCEOnWrite); +MONGO_FAIL_POINT_DEFINE(EFTThrowWCEOnMerge); } // namespace RecoveryUnit::RecoveryUnit(KVEngine* parentKVEngine, std::function<void()> cb) @@ -62,6 +63,10 @@ void RecoveryUnit::doCommitUnitOfWork() { if (_dirty) { invariant(_forked); + if (MONGO_unlikely(EFTThrowWCEOnMerge.shouldFail())) { + throw WriteConflictException(); + } + while (true) { auto masterInfo = _KVEngine->getMasterInfo(_readAtTimestamp); try { |