summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Chan <jason.chan@mongodb.com>2021-10-12 14:13:29 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-10-15 15:05:12 +0000
commit51e4800e88a0284811fad098a7f125ecef835b07 (patch)
treede1b92c16775a91e6291613794fbe534f14c0a9f
parent5f82908d217a160aa309e90bacc5d336de823322 (diff)
downloadmongo-51e4800e88a0284811fad098a7f125ecef835b07.tar.gz
SERVER-60469 Fix bug where two optimes for being reserved for retryable deletes despite not capturing a preImage
(cherry picked from commit 3953546c3cb0afa6dcafbc02f9c732d26a3166ec)
-rw-r--r--src/mongo/db/catalog/collection_impl.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/mongo/db/catalog/collection_impl.cpp b/src/mongo/db/catalog/collection_impl.cpp
index 3de0a60632b..a67bb96fdcf 100644
--- a/src/mongo/db/catalog/collection_impl.cpp
+++ b/src/mongo/db/catalog/collection_impl.cpp
@@ -1157,7 +1157,10 @@ void CollectionImpl::deleteDocument(OperationContext* opCtx,
uasserted(10089, "cannot remove from a capped collection");
}
- const auto oplogSlot = reserveOplogSlotsForRetryableFindAndModify(opCtx);
+ boost::optional<OplogSlot> oplogSlot = boost::none;
+ if (storeDeletedDoc == Collection::StoreDeletedDoc::On) {
+ oplogSlot = reserveOplogSlotsForRetryableFindAndModify(opCtx);
+ }
OpObserver::OplogDeleteEntryArgs deleteArgs{
nullptr, fromMigrate, getRecordPreImages(), oplogSlot, oplogSlot != boost::none};