diff options
Diffstat (limited to 'src/mongo/db/query/plan_insert_listener.cpp')
-rw-r--r-- | src/mongo/db/query/plan_insert_listener.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mongo/db/query/plan_insert_listener.cpp b/src/mongo/db/query/plan_insert_listener.cpp index 6e31be68b0b..c9458234402 100644 --- a/src/mongo/db/query/plan_insert_listener.cpp +++ b/src/mongo/db/query/plan_insert_listener.cpp @@ -92,8 +92,9 @@ std::unique_ptr<Notifier> getCappedInsertNotifier(OperationContext* opCtx, if (opCtx->recoveryUnit()->getTimestampReadSource() == RecoveryUnit::kMajorityCommitted) { return std::make_unique<MajorityCommittedPointNotifier>(); } else { - auto collection = - CollectionCatalog::get(opCtx)->lookupCollectionByNamespaceForRead(opCtx, nss); + // Hold reference to the catalog for collection lookup without locks to be safe. + auto catalog = CollectionCatalog::get(opCtx); + auto collection = catalog->lookupCollectionByNamespace(opCtx, nss); invariant(collection); return std::make_unique<LocalCappedInsertNotifier>( |