diff options
author | Jordi Serra Torrens <jordi.serra-torrens@mongodb.com> | 2022-09-28 10:11:50 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-11-04 18:50:12 +0000 |
commit | 53973727e253d8b797bc0b2a734326d4e3fdad6d (patch) | |
tree | d4cf0a1effcc98ab265b44317194658c975775b7 /src/mongo/db/serverless | |
parent | 05cf56be4fdfa33c88d47dfb48f95a60c9cc7e09 (diff) | |
download | mongo-53973727e253d8b797bc0b2a734326d4e3fdad6d.tar.gz |
SERVER-70043 Thread-through CollectionPtr into the onDelete OpObserver
Co-authored-by: Daniel Gómez Ferro <daniel.gomezferro@mongodb.com>
Diffstat (limited to 'src/mongo/db/serverless')
3 files changed, 12 insertions, 24 deletions
diff --git a/src/mongo/db/serverless/shard_split_donor_op_observer.cpp b/src/mongo/db/serverless/shard_split_donor_op_observer.cpp index 54e33417d40..7f43900fa05 100644 --- a/src/mongo/db/serverless/shard_split_donor_op_observer.cpp +++ b/src/mongo/db/serverless/shard_split_donor_op_observer.cpp @@ -357,10 +357,9 @@ void ShardSplitDonorOpObserver::onUpdate(OperationContext* opCtx, } void ShardSplitDonorOpObserver::aboutToDelete(OperationContext* opCtx, - NamespaceString const& nss, - const UUID& uuid, + const CollectionPtr& coll, BSONObj const& doc) { - if (nss != NamespaceString::kShardSplitDonorsNamespace || + if (coll->ns() != NamespaceString::kShardSplitDonorsNamespace || tenant_migration_access_blocker::inRecoveryMode(opCtx)) { return; } @@ -390,11 +389,10 @@ void ShardSplitDonorOpObserver::aboutToDelete(OperationContext* opCtx, } void ShardSplitDonorOpObserver::onDelete(OperationContext* opCtx, - const NamespaceString& nss, - const UUID& uuid, + const CollectionPtr& coll, StmtId stmtId, const OplogDeleteEntryArgs& args) { - if (nss != NamespaceString::kShardSplitDonorsNamespace || !splitCleanupDetails(opCtx) || + if (coll->ns() != NamespaceString::kShardSplitDonorsNamespace || !splitCleanupDetails(opCtx) || tenant_migration_access_blocker::inRecoveryMode(opCtx)) { return; } diff --git a/src/mongo/db/serverless/shard_split_donor_op_observer.h b/src/mongo/db/serverless/shard_split_donor_op_observer.h index efe1d43fc3b..092b9f1f1f7 100644 --- a/src/mongo/db/serverless/shard_split_donor_op_observer.h +++ b/src/mongo/db/serverless/shard_split_donor_op_observer.h @@ -111,13 +111,11 @@ public: void onUpdate(OperationContext* opCtx, const OplogUpdateEntryArgs& args) final; void aboutToDelete(OperationContext* opCtx, - const NamespaceString& nss, - const UUID& uuid, + const CollectionPtr& coll, const BSONObj& doc) final; void onDelete(OperationContext* opCtx, - const NamespaceString& nss, - const UUID& uuid, + const CollectionPtr& coll, StmtId stmtId, const OplogDeleteEntryArgs& args) final; diff --git a/src/mongo/db/serverless/shard_split_donor_op_observer_test.cpp b/src/mongo/db/serverless/shard_split_donor_op_observer_test.cpp index b644356c301..cc679386b00 100644 --- a/src/mongo/db/serverless/shard_split_donor_op_observer_test.cpp +++ b/src/mongo/db/serverless/shard_split_donor_op_observer_test.cpp @@ -467,17 +467,13 @@ TEST_F(ShardSplitDonorOpObserverTest, DeleteAbortedDocumentDoesNotRemoveBlockers auto bsonDoc = stateDocument.toBSON(); WriteUnitOfWork wuow(_opCtx.get()); - _observer->aboutToDelete( - _opCtx.get(), NamespaceString::kShardSplitDonorsNamespace, UUID::gen(), bsonDoc); + AutoGetCollection autoColl(_opCtx.get(), NamespaceString::kShardSplitDonorsNamespace, MODE_IX); + _observer->aboutToDelete(_opCtx.get(), *autoColl, bsonDoc); OplogDeleteEntryArgs deleteArgs; deleteArgs.deletedDoc = &bsonDoc; - _observer->onDelete(_opCtx.get(), - NamespaceString::kShardSplitDonorsNamespace, - UUID::gen(), - 0 /* stmtId */, - deleteArgs); + _observer->onDelete(_opCtx.get(), *autoColl, 0 /* stmtId */, deleteArgs); wuow.commit(); // Verify blockers have not been removed @@ -509,17 +505,13 @@ TEST_F(ShardSplitDonorOpObserverTest, DeleteCommittedDocumentRemovesBlockers) { auto bsonDoc = stateDocument.toBSON(); WriteUnitOfWork wuow(_opCtx.get()); - _observer->aboutToDelete( - _opCtx.get(), NamespaceString::kShardSplitDonorsNamespace, UUID::gen(), bsonDoc); + AutoGetCollection autoColl(_opCtx.get(), NamespaceString::kShardSplitDonorsNamespace, MODE_IX); + _observer->aboutToDelete(_opCtx.get(), *autoColl, bsonDoc); OplogDeleteEntryArgs deleteArgs; deleteArgs.deletedDoc = &bsonDoc; - _observer->onDelete(_opCtx.get(), - NamespaceString::kShardSplitDonorsNamespace, - UUID::gen(), - 0 /* stmtId */, - deleteArgs); + _observer->onDelete(_opCtx.get(), *autoColl, 0 /* stmtId */, deleteArgs); wuow.commit(); // Verify blockers have been removed |