From 23376f506bf0ee9cb64cdf212a618224a1184859 Mon Sep 17 00:00:00 2001 From: Faustoleyva54 Date: Fri, 31 Dec 2021 17:44:36 +0000 Subject: SERVER-62050 Remove _opCtx from AutoGetDb and instead pass in an opCtx to AutoGetDb::ensureDbExists() --- src/mongo/db/catalog/create_collection.cpp | 6 +++--- src/mongo/db/catalog/database_test.cpp | 22 +++++++++++----------- src/mongo/db/catalog/drop_database_test.cpp | 2 +- src/mongo/db/catalog/rename_collection_test.cpp | 2 +- src/mongo/db/catalog_raii.cpp | 14 +++++++------- src/mongo/db/catalog_raii.h | 5 ++--- src/mongo/db/commands/test_commands.cpp | 2 +- src/mongo/db/index_build_entry_helpers.cpp | 2 +- src/mongo/db/mongod_main.cpp | 2 +- src/mongo/db/ops/write_ops_exec.cpp | 2 +- src/mongo/db/repl/rs_rollback_test.cpp | 2 +- src/mongo/db/repl/storage_interface_impl.cpp | 4 ++-- src/mongo/db/s/migration_destination_manager.cpp | 2 +- src/mongo/db/s/move_primary_source_manager.cpp | 2 +- .../db/s/resharding/resharding_oplog_fetcher.cpp | 2 +- .../s/resharding/resharding_oplog_fetcher_test.cpp | 2 +- src/mongo/db/s/sharding_initialization_mongod.cpp | 2 +- src/mongo/db/s/sharding_state_recovery.cpp | 2 +- src/mongo/db/transaction_participant_test.cpp | 10 +++++----- src/mongo/db/views/view_catalog_test.cpp | 6 +++--- src/mongo/dbtests/dbtests.cpp | 4 ++-- .../dbtests/extensions_callback_real_test.cpp | 2 +- 22 files changed, 49 insertions(+), 50 deletions(-) diff --git a/src/mongo/db/catalog/create_collection.cpp b/src/mongo/db/catalog/create_collection.cpp index a7bb318d94b..454793339f4 100644 --- a/src/mongo/db/catalog/create_collection.cpp +++ b/src/mongo/db/catalog/create_collection.cpp @@ -156,7 +156,7 @@ Status _createView(OperationContext* opCtx, NamespaceString(nss.db(), NamespaceString::kSystemDotViewsCollectionName), MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx); if (opCtx->writesAreReplicated() && !repl::ReplicationCoordinator::get(opCtx)->canAcceptWritesFor(opCtx, nss)) { @@ -280,7 +280,7 @@ Status _createTimeseries(OperationContext* opCtx, str::stream() << "Collection already exists. NS: " << ns); } - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx); if (auto view = ViewCatalog::get(db)->lookup(opCtx, ns); view) { if (view->timeseries()) { return Status(ErrorCodes::NamespaceExists, @@ -448,7 +448,7 @@ Status _createCollection(OperationContext* opCtx, return Status(ErrorCodes::NamespaceExists, str::stream() << "Collection already exists. NS: " << nss); } - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx); if (auto view = ViewCatalog::get(db)->lookup(opCtx, nss); view) { if (view->timeseries()) { return Status(ErrorCodes::NamespaceExists, diff --git a/src/mongo/db/catalog/database_test.cpp b/src/mongo/db/catalog/database_test.cpp index 623d3e9e4a6..537a890fb93 100644 --- a/src/mongo/db/catalog/database_test.cpp +++ b/src/mongo/db/catalog/database_test.cpp @@ -117,7 +117,7 @@ void DatabaseTest::tearDown() { TEST_F(DatabaseTest, SetDropPendingThrowsExceptionIfDatabaseIsAlreadyInADropPendingState) { writeConflictRetry(_opCtx.get(), "testSetDropPending", _nss.ns(), [this] { AutoGetDb autoDb(_opCtx.get(), _nss.db(), MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(_opCtx.get()); ASSERT_TRUE(db); ASSERT_FALSE(db->isDropPending(_opCtx.get())); @@ -140,7 +140,7 @@ TEST_F(DatabaseTest, CreateCollectionThrowsExceptionWhenDatabaseIsInADropPending writeConflictRetry( _opCtx.get(), "testÇreateCollectionWhenDatabaseIsInADropPendingState", _nss.ns(), [this] { AutoGetDb autoDb(_opCtx.get(), _nss.db(), MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(_opCtx.get()); ASSERT_TRUE(db); db->setDropPending(_opCtx.get(), true); @@ -172,7 +172,7 @@ void _testDropCollection(OperationContext* opCtx, writeConflictRetry(opCtx, "testDropCollection", nss.ns(), [=] { WriteUnitOfWork wuow(opCtx); AutoGetDb autoDb(opCtx, nss.db(), MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx); ASSERT_TRUE(db); ASSERT_TRUE(db->createCollection(opCtx, nss, collOpts)); wuow.commit(); @@ -181,7 +181,7 @@ void _testDropCollection(OperationContext* opCtx, writeConflictRetry(opCtx, "testDropCollection", nss.ns(), [=] { AutoGetDb autoDb(opCtx, nss.db(), MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx); ASSERT_TRUE(db); WriteUnitOfWork wuow(opCtx); @@ -246,7 +246,7 @@ TEST_F(DatabaseTest, DropCollectionRejectsProvidedDropOpTimeIfWritesAreReplicate auto opCtx = _opCtx.get(); auto nss = _nss; AutoGetDb autoDb(opCtx, nss.db(), MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx); writeConflictRetry(opCtx, "testDropOpTimeWithReplicated", nss.ns(), [&] { ASSERT_TRUE(db); @@ -290,7 +290,7 @@ void _testDropCollectionThrowsExceptionIfThereAreIndexesInProgress(OperationCont const NamespaceString& nss) { writeConflictRetry(opCtx, "testDropCollectionWithIndexesInProgress", nss.ns(), [opCtx, nss] { AutoGetDb autoDb(opCtx, nss.db(), MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx); ASSERT_TRUE(db); Collection* collection = nullptr; @@ -348,7 +348,7 @@ TEST_F(DatabaseTest, RenameCollectionPreservesUuidOfSourceCollectionAndUpdatesUu ASSERT_NOT_EQUALS(fromNss, toNss); AutoGetDb autoDb(opCtx, fromNss.db(), MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx); ASSERT_TRUE(db); auto fromUuid = UUID::gen(); @@ -390,7 +390,7 @@ TEST_F(DatabaseTest, MakeUniqueCollectionNamespaceReturnsFailedToParseIfModelDoesNotContainPercentSign) { writeConflictRetry(_opCtx.get(), "testMakeUniqueCollectionNamespace", _nss.ns(), [this] { AutoGetDb autoDb(_opCtx.get(), _nss.db(), MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(_opCtx.get()); ASSERT_TRUE(db); ASSERT_EQUALS( ErrorCodes::FailedToParse, @@ -401,7 +401,7 @@ TEST_F(DatabaseTest, TEST_F(DatabaseTest, MakeUniqueCollectionNamespaceReplacesPercentSignsWithRandomCharacters) { writeConflictRetry(_opCtx.get(), "testMakeUniqueCollectionNamespace", _nss.ns(), [this] { AutoGetDb autoDb(_opCtx.get(), _nss.db(), MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(_opCtx.get()); ASSERT_TRUE(db); auto model = "tmp%%%%"_sd; @@ -443,7 +443,7 @@ TEST_F( MakeUniqueCollectionNamespaceReturnsNamespaceExistsIfGeneratedNamesMatchExistingCollections) { writeConflictRetry(_opCtx.get(), "testMakeUniqueCollectionNamespace", _nss.ns(), [this] { AutoGetDb autoDb(_opCtx.get(), _nss.db(), MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(_opCtx.get()); ASSERT_TRUE(db); auto model = "tmp%"_sd; @@ -525,7 +525,7 @@ TEST_F(DatabaseTest, CreateCollectionProhibitsReplicatedCollectionsWithoutIdInde _nss.ns(), [this] { AutoGetDb autoDb(_opCtx.get(), _nss.db(), MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(_opCtx.get()); ASSERT_TRUE(db); WriteUnitOfWork wuow(_opCtx.get()); diff --git a/src/mongo/db/catalog/drop_database_test.cpp b/src/mongo/db/catalog/drop_database_test.cpp index 397d91b5f0c..3eb60f9ef9e 100644 --- a/src/mongo/db/catalog/drop_database_test.cpp +++ b/src/mongo/db/catalog/drop_database_test.cpp @@ -183,7 +183,7 @@ void DropDatabaseTest::tearDown() { void _createCollection(OperationContext* opCtx, const NamespaceString& nss) { writeConflictRetry(opCtx, "testDropCollection", nss.ns(), [=] { AutoGetDb autoDb(opCtx, nss.db(), MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx); ASSERT_TRUE(db); WriteUnitOfWork wuow(opCtx); diff --git a/src/mongo/db/catalog/rename_collection_test.cpp b/src/mongo/db/catalog/rename_collection_test.cpp index 18a550030f9..57863d4e453 100644 --- a/src/mongo/db/catalog/rename_collection_test.cpp +++ b/src/mongo/db/catalog/rename_collection_test.cpp @@ -379,7 +379,7 @@ void _createCollection(OperationContext* opCtx, const CollectionOptions options = {}) { writeConflictRetry(opCtx, "_createCollection", nss.ns(), [=] { AutoGetDb autoDb(opCtx, nss.db(), MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx); ASSERT_TRUE(db) << "Cannot create collection " << nss << " because database " << nss.db() << " does not exist."; diff --git a/src/mongo/db/catalog_raii.cpp b/src/mongo/db/catalog_raii.cpp index 555f3b8cbd7..3625d81ff4a 100644 --- a/src/mongo/db/catalog_raii.cpp +++ b/src/mongo/db/catalog_raii.cpp @@ -49,7 +49,7 @@ MONGO_FAIL_POINT_DEFINE(setAutoGetCollectionWait); } // namespace AutoGetDb::AutoGetDb(OperationContext* opCtx, StringData dbName, LockMode mode, Date_t deadline) - : _opCtx(opCtx), _dbName(dbName), _dbLock(opCtx, dbName, mode, deadline), _db([&] { + : _dbName(dbName), _dbLock(opCtx, dbName, mode, deadline), _db([&] { auto databaseHolder = DatabaseHolder::get(opCtx); return databaseHolder->getDb(opCtx, dbName); }()) { @@ -58,17 +58,17 @@ AutoGetDb::AutoGetDb(OperationContext* opCtx, StringData dbName, LockMode mode, dss->checkDbVersion(opCtx, dssLock); } -Database* AutoGetDb::ensureDbExists() { +Database* AutoGetDb::ensureDbExists(OperationContext* opCtx) { if (_db) { return _db; } - auto databaseHolder = DatabaseHolder::get(_opCtx); - _db = databaseHolder->openDb(_opCtx, _dbName, nullptr); + auto databaseHolder = DatabaseHolder::get(opCtx); + _db = databaseHolder->openDb(opCtx, _dbName, nullptr); - auto dss = DatabaseShardingState::get(_opCtx, _dbName); - auto dssLock = DatabaseShardingState::DSSLock::lockShared(_opCtx, dss); - dss->checkDbVersion(_opCtx, dssLock); + auto dss = DatabaseShardingState::get(opCtx, _dbName); + auto dssLock = DatabaseShardingState::DSSLock::lockShared(opCtx, dss); + dss->checkDbVersion(opCtx, dssLock); return _db; } diff --git a/src/mongo/db/catalog_raii.h b/src/mongo/db/catalog_raii.h index 5f5614d5622..69f2abac298 100644 --- a/src/mongo/db/catalog_raii.h +++ b/src/mongo/db/catalog_raii.h @@ -73,10 +73,9 @@ public: /** * Returns the database, creating it if it does not exist. */ - Database* ensureDbExists(); + Database* ensureDbExists(OperationContext* opCtx); private: - OperationContext* _opCtx; std::string _dbName; Lock::DBLock _dbLock; @@ -139,7 +138,7 @@ public: * Returns the database, creating it if it does not exist. */ Database* ensureDbExists() { - return _autoDb.ensureDbExists(); + return _autoDb.ensureDbExists(_opCtx); } /** diff --git a/src/mongo/db/commands/test_commands.cpp b/src/mongo/db/commands/test_commands.cpp index e8a6481d589..9c76050ce77 100644 --- a/src/mongo/db/commands/test_commands.cpp +++ b/src/mongo/db/commands/test_commands.cpp @@ -266,7 +266,7 @@ public: uassertStatusOK(userAllowedCreateNS(opCtx, kDurableHistoryTestNss)); WriteUnitOfWork wuow(opCtx); CollectionOptions defaultCollectionOptions; - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx); uassertStatusOK( db->userCreateNS(opCtx, kDurableHistoryTestNss, defaultCollectionOptions)); wuow.commit(); diff --git a/src/mongo/db/index_build_entry_helpers.cpp b/src/mongo/db/index_build_entry_helpers.cpp index 08534de3906..a8206954697 100644 --- a/src/mongo/db/index_build_entry_helpers.cpp +++ b/src/mongo/db/index_build_entry_helpers.cpp @@ -171,7 +171,7 @@ void ensureIndexBuildEntriesNamespaceExists(OperationContext* opCtx) { NamespaceString::kIndexBuildEntryNamespace.ns(), [&]() -> void { AutoGetDb autoDb(opCtx, NamespaceString::kIndexBuildEntryNamespace.db(), MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx); // Ensure the database exists. invariant(db); diff --git a/src/mongo/db/mongod_main.cpp b/src/mongo/db/mongod_main.cpp index f70fec727cb..6a9fb977ad3 100644 --- a/src/mongo/db/mongod_main.cpp +++ b/src/mongo/db/mongod_main.cpp @@ -268,7 +268,7 @@ void logStartup(OperationContext* opCtx) { Lock::GlobalWrite lk(opCtx); AutoGetDb autoDb(opCtx, startupLogCollectionName.db(), mongo::MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx); CollectionPtr collection = CollectionCatalog::get(opCtx)->lookupCollectionByNamespace(opCtx, startupLogCollectionName); WriteUnitOfWork wunit(opCtx); diff --git a/src/mongo/db/ops/write_ops_exec.cpp b/src/mongo/db/ops/write_ops_exec.cpp index df0b45349f5..a03af1e2042 100644 --- a/src/mongo/db/ops/write_ops_exec.cpp +++ b/src/mongo/db/ops/write_ops_exec.cpp @@ -242,7 +242,7 @@ void makeCollection(OperationContext* opCtx, const NamespaceString& ns) { unsafeCreateCollection(opCtx); WriteUnitOfWork wuow(opCtx); CollectionOptions defaultCollectionOptions; - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx); uassertStatusOK(db->userCreateNS(opCtx, ns, defaultCollectionOptions)); wuow.commit(); } diff --git a/src/mongo/db/repl/rs_rollback_test.cpp b/src/mongo/db/repl/rs_rollback_test.cpp index 9f54c362df3..d95aae3f5a8 100644 --- a/src/mongo/db/repl/rs_rollback_test.cpp +++ b/src/mongo/db/repl/rs_rollback_test.cpp @@ -1818,7 +1818,7 @@ TEST_F(RSRollbackTest, RollbackApplyOpsCommand) { coll = CollectionCatalog::get(_opCtx.get()) ->lookupCollectionByNamespace(_opCtx.get(), NamespaceString("test.t")); if (!coll) { - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(_opCtx.get()); coll = db->createCollection(_opCtx.get(), NamespaceString("test.t"), options); } ASSERT(coll); diff --git a/src/mongo/db/repl/storage_interface_impl.cpp b/src/mongo/db/repl/storage_interface_impl.cpp index 9182c310c02..6e16222e547 100644 --- a/src/mongo/db/repl/storage_interface_impl.cpp +++ b/src/mongo/db/repl/storage_interface_impl.cpp @@ -245,7 +245,7 @@ StorageInterfaceImpl::createCollectionForBulkLoading( { // Create the collection. WriteUnitOfWork wunit(opCtx.get()); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx.get()); fassert(40332, db->createCollection(opCtx.get(), nss, options, false)); wunit.commit(); } @@ -475,7 +475,7 @@ Status StorageInterfaceImpl::createCollection(OperationContext* opCtx, const BSONObj& idIndexSpec) { return writeConflictRetry(opCtx, "StorageInterfaceImpl::createCollection", nss.ns(), [&] { AutoGetDb databaseWriteGuard(opCtx, nss.db(), MODE_IX); - auto db = databaseWriteGuard.ensureDbExists(); + auto db = databaseWriteGuard.ensureDbExists(opCtx); invariant(db); if (CollectionCatalog::get(opCtx)->lookupCollectionByNamespace(opCtx, nss)) { return Status(ErrorCodes::NamespaceExists, diff --git a/src/mongo/db/s/migration_destination_manager.cpp b/src/mongo/db/s/migration_destination_manager.cpp index 426cbee3199..8cf648fae60 100644 --- a/src/mongo/db/s/migration_destination_manager.cpp +++ b/src/mongo/db/s/migration_destination_manager.cpp @@ -988,7 +988,7 @@ void MigrationDestinationManager::cloneCollectionIndexesAndOptions( // Take the exclusive database lock if the collection does not exist or indexes are missing // (needs auto-heal). AutoGetDb autoDb(opCtx, nss.db(), MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx); auto collection = CollectionCatalog::get(opCtx)->lookupCollectionByNamespace(opCtx, nss); if (collection) { diff --git a/src/mongo/db/s/move_primary_source_manager.cpp b/src/mongo/db/s/move_primary_source_manager.cpp index e7b2e87ccef..e0431a8688f 100644 --- a/src/mongo/db/s/move_primary_source_manager.cpp +++ b/src/mongo/db/s/move_primary_source_manager.cpp @@ -104,7 +104,7 @@ Status MovePrimarySourceManager::clone(OperationContext* opCtx) { // We use AutoGetDb::ensureDbExists() the first time just in case movePrimary was called // before any data was inserted into the database. AutoGetDb autoDb(opCtx, getNss().toString(), MODE_X); - invariant(autoDb.ensureDbExists(), getNss().toString()); + invariant(autoDb.ensureDbExists(opCtx), getNss().toString()); auto dss = DatabaseShardingState::get(opCtx, getNss().toString()); auto dssLock = DatabaseShardingState::DSSLock::lockExclusive(opCtx, dss); diff --git a/src/mongo/db/s/resharding/resharding_oplog_fetcher.cpp b/src/mongo/db/s/resharding/resharding_oplog_fetcher.cpp index 23050570432..2a06e180b18 100644 --- a/src/mongo/db/s/resharding/resharding_oplog_fetcher.cpp +++ b/src/mongo/db/s/resharding/resharding_oplog_fetcher.cpp @@ -251,7 +251,7 @@ void ReshardingOplogFetcher::_ensureCollection(Client* client, WriteUnitOfWork wuow(opCtx); AutoGetDb autoDb(opCtx, nss.db(), LockMode::MODE_IX); Lock::CollectionLock collLock(opCtx, nss, MODE_IX); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx); db->createCollection(opCtx, nss); wuow.commit(); }); diff --git a/src/mongo/db/s/resharding/resharding_oplog_fetcher_test.cpp b/src/mongo/db/s/resharding/resharding_oplog_fetcher_test.cpp index f62b89351c1..eadfd64ddec 100644 --- a/src/mongo/db/s/resharding/resharding_oplog_fetcher_test.cpp +++ b/src/mongo/db/s/resharding/resharding_oplog_fetcher_test.cpp @@ -220,7 +220,7 @@ public: OperationShardingState::ScopedAllowImplicitCollectionCreate_UNSAFE unsafeCreateCollection(_opCtx); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(_opCtx); ASSERT(db->createCollection(_opCtx, nss)) << nss; wunit.commit(); }); diff --git a/src/mongo/db/s/sharding_initialization_mongod.cpp b/src/mongo/db/s/sharding_initialization_mongod.cpp index 90145459db0..9d57fd74933 100644 --- a/src/mongo/db/s/sharding_initialization_mongod.cpp +++ b/src/mongo/db/s/sharding_initialization_mongod.cpp @@ -458,7 +458,7 @@ void ShardingInitializationMongoD::updateShardIdentityConfigString( try { AutoGetDb autoDb(opCtx, NamespaceString::kServerConfigurationNamespace.db(), MODE_X); - auto result = update(opCtx, autoDb.ensureDbExists(), updateReq); + auto result = update(opCtx, autoDb.ensureDbExists(opCtx), updateReq); if (result.numMatched == 0) { LOGV2_WARNING(22076, "Failed to update config server connection string of shard identity " diff --git a/src/mongo/db/s/sharding_state_recovery.cpp b/src/mongo/db/s/sharding_state_recovery.cpp index 90c72314095..a47f086a997 100644 --- a/src/mongo/db/s/sharding_state_recovery.cpp +++ b/src/mongo/db/s/sharding_state_recovery.cpp @@ -168,7 +168,7 @@ Status modifyRecoveryDocument(OperationContext* opCtx, write_ops::UpdateModification::parseFromClassicUpdate(updateObj)); updateReq.setUpsert(); - UpdateResult result = update(opCtx, autoGetDb->ensureDbExists(), updateReq); + UpdateResult result = update(opCtx, autoGetDb->ensureDbExists(opCtx), updateReq); invariant(result.numDocsModified == 1 || !result.upsertedId.isEmpty()); invariant(result.numMatched <= 1); diff --git a/src/mongo/db/transaction_participant_test.cpp b/src/mongo/db/transaction_participant_test.cpp index 4b5c5c0a3ce..fbdc15ac384 100644 --- a/src/mongo/db/transaction_participant_test.cpp +++ b/src/mongo/db/transaction_participant_test.cpp @@ -262,7 +262,7 @@ protected: // Set up a collection so that TransactionParticipant::prepareTransaction() can safely // access it. AutoGetDb autoDb(opCtx(), kNss.db(), MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx()); ASSERT_TRUE(db); WriteUnitOfWork wuow(opCtx()); @@ -342,7 +342,7 @@ void insertTxnRecord(OperationContext* opCtx, unsigned i, DurableTxnStateEnum st record.setLastWriteDate(Date_t::now()); AutoGetDb autoDb(opCtx, nss.db(), MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx); ASSERT(db); WriteUnitOfWork wuow(opCtx); auto coll = CollectionCatalog::get(opCtx)->lookupCollectionByNamespace(opCtx, nss); @@ -617,7 +617,7 @@ TEST_F(TxnParticipantTest, PrepareFailsOnTemporaryCollection) { // Create a temporary collection so that we can write to it. { AutoGetDb autoDb(opCtx(), kNss.db(), MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx()); ASSERT_TRUE(db); WriteUnitOfWork wuow(opCtx()); @@ -4357,7 +4357,7 @@ TEST_F(TxnParticipantTest, OldestActiveTransactionTimestamp) { auto deleteTxnRecord = [&](unsigned i) { Timestamp ts(1, i); AutoGetDb autoDb(opCtx(), nss.db(), MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx()); ASSERT(db); WriteUnitOfWork wuow(opCtx()); auto coll = CollectionCatalog::get(opCtx())->lookupCollectionByNamespace(opCtx(), nss); @@ -4414,7 +4414,7 @@ TEST_F(TxnParticipantTest, OldestActiveTransactionTimestampTimeout) { // Block getOldestActiveTimestamp() by locking the config database. auto nss = NamespaceString::kSessionTransactionsTableNamespace; AutoGetDb autoDb(opCtx(), nss.db(), MODE_X); - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx()); ASSERT(db); auto statusWith = TransactionParticipant::getOldestActiveTimestamp(Timestamp()); ASSERT_FALSE(statusWith.isOK()); diff --git a/src/mongo/db/views/view_catalog_test.cpp b/src/mongo/db/views/view_catalog_test.cpp index f468f5feac9..1836f3feb21 100644 --- a/src/mongo/db/views/view_catalog_test.cpp +++ b/src/mongo/db/views/view_catalog_test.cpp @@ -83,12 +83,12 @@ public: WriteUnitOfWork wuow(operationContext()); AutoGetDb autoDb(operationContext(), "db", MODE_X); - _db = autoDb.ensureDbExists(); + _db = autoDb.ensureDbExists(operationContext()); invariant(_db); // Create any additional databases used throughout the test. - ASSERT(AutoGetDb(operationContext(), "db1", MODE_X).ensureDbExists()); - ASSERT(AutoGetDb(operationContext(), "db2", MODE_X).ensureDbExists()); + ASSERT(AutoGetDb(operationContext(), "db1", MODE_X).ensureDbExists(operationContext())); + ASSERT(AutoGetDb(operationContext(), "db2", MODE_X).ensureDbExists(operationContext())); auto durableViewCatalogUnique = std::make_unique(_db); durableViewCatalog = durableViewCatalogUnique.get(); diff --git a/src/mongo/dbtests/dbtests.cpp b/src/mongo/dbtests/dbtests.cpp index 6f0b0f944db..1e90dfc482a 100644 --- a/src/mongo/dbtests/dbtests.cpp +++ b/src/mongo/dbtests/dbtests.cpp @@ -107,7 +107,7 @@ Status createIndexFromSpec(OperationContext* opCtx, StringData ns, const BSONObj coll = CollectionCatalog::get(opCtx)->lookupCollectionByNamespaceForMetadataWrite( opCtx, CollectionCatalog::LifetimeMode::kInplace, NamespaceString(ns)); if (!coll) { - auto db = autoDb.ensureDbExists(); + auto db = autoDb.ensureDbExists(opCtx); invariant(db); coll = db->createCollection(opCtx, NamespaceString(ns)); } @@ -165,7 +165,7 @@ WriteContextForTests::WriteContextForTests(OperationContext* opCtx, StringData n const bool doShardVersionCheck = false; _clientContext.emplace(opCtx, _nss.ns(), doShardVersionCheck); - auto db = _autoDb->ensureDbExists(); + auto db = _autoDb->ensureDbExistsopCtx); invariant(db, _nss.ns()); invariant(db == _clientContext->db()); diff --git a/src/mongo/dbtests/extensions_callback_real_test.cpp b/src/mongo/dbtests/extensions_callback_real_test.cpp index 615f2ecee60..a2d88117969 100644 --- a/src/mongo/dbtests/extensions_callback_real_test.cpp +++ b/src/mongo/dbtests/extensions_callback_real_test.cpp @@ -54,7 +54,7 @@ public: void setUp() final { AutoGetDb autoDb(&_opCtx, _nss.db(), MODE_X); - auto database = autoDb.ensureDbExists(); + auto database = autoDb.ensureDbExists(&_opCtx); { WriteUnitOfWork wunit(&_opCtx); ASSERT(database->createCollection(&_opCtx, _nss)); -- cgit v1.2.1