diff options
Diffstat (limited to 'src/mongo/db/catalog/capped_utils.cpp')
-rw-r--r-- | src/mongo/db/catalog/capped_utils.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/mongo/db/catalog/capped_utils.cpp b/src/mongo/db/catalog/capped_utils.cpp index 69bac1c04ff..3f26e0c5bd6 100644 --- a/src/mongo/db/catalog/capped_utils.cpp +++ b/src/mongo/db/catalog/capped_utils.cpp @@ -262,15 +262,18 @@ mongo::Status mongo::convertToCapped(OperationContext* opCtx, } BackgroundOperation::assertNoBgOpInProgForDb(dbname); + auto opObserver = getGlobalServiceContext()->getOpObserver(); std::string shortTmpName = str::stream() << "tmp.convertToCapped." << shortSource; NamespaceString longTmpName(dbname, shortTmpName); - if (db->getCollection(opCtx, longTmpName)) { + if (auto existingTmpColl = db->getCollection(opCtx, longTmpName)) { WriteUnitOfWork wunit(opCtx); Status status = db->dropCollection(opCtx, longTmpName.ns()); if (!status.isOK()) return status; + opObserver->onDropCollection(opCtx, longTmpName, existingTmpColl->uuid()); + wunit.commit(); } { @@ -283,7 +286,8 @@ mongo::Status mongo::convertToCapped(OperationContext* opCtx, } } - OptionalCollectionUUID uuid = db->getCollection(opCtx, longTmpName)->uuid(); + OptionalCollectionUUID origUUID = db->getCollection(opCtx, collectionName)->uuid(); + OptionalCollectionUUID cappedUUID = db->getCollection(opCtx, longTmpName)->uuid(); { WriteUnitOfWork wunit(opCtx); @@ -299,7 +303,7 @@ mongo::Status mongo::convertToCapped(OperationContext* opCtx, return status; getGlobalServiceContext()->getOpObserver()->onConvertToCapped( - opCtx, collectionName, uuid, size); + opCtx, collectionName, origUUID, cappedUUID, size); wunit.commit(); } |