diff options
author | Jason Chan <jason.chan@mongodb.com> | 2021-10-12 14:13:29 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-10-15 15:05:12 +0000 |
commit | 51e4800e88a0284811fad098a7f125ecef835b07 (patch) | |
tree | de1b92c16775a91e6291613794fbe534f14c0a9f | |
parent | 5f82908d217a160aa309e90bacc5d336de823322 (diff) | |
download | mongo-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.cpp | 5 |
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}; |