summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFaustoleyva54 <fausto.leyva@mongodb.com>2021-12-31 17:44:36 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-01-05 21:46:33 +0000
commit23376f506bf0ee9cb64cdf212a618224a1184859 (patch)
tree97c4ac417dd2b10672771b45cb8cc4a502812d19
parentf8ce50765f7017ed6cbb1cffd57dfa0d58e5c705 (diff)
downloadmongo-23376f506bf0ee9cb64cdf212a618224a1184859.tar.gz
SERVER-62050 Remove _opCtx from AutoGetDb and instead pass in an opCtx to AutoGetDb::ensureDbExists()
-rw-r--r--src/mongo/db/catalog/create_collection.cpp6
-rw-r--r--src/mongo/db/catalog/database_test.cpp22
-rw-r--r--src/mongo/db/catalog/drop_database_test.cpp2
-rw-r--r--src/mongo/db/catalog/rename_collection_test.cpp2
-rw-r--r--src/mongo/db/catalog_raii.cpp14
-rw-r--r--src/mongo/db/catalog_raii.h5
-rw-r--r--src/mongo/db/commands/test_commands.cpp2
-rw-r--r--src/mongo/db/index_build_entry_helpers.cpp2
-rw-r--r--src/mongo/db/mongod_main.cpp2
-rw-r--r--src/mongo/db/ops/write_ops_exec.cpp2
-rw-r--r--src/mongo/db/repl/rs_rollback_test.cpp2
-rw-r--r--src/mongo/db/repl/storage_interface_impl.cpp4
-rw-r--r--src/mongo/db/s/migration_destination_manager.cpp2
-rw-r--r--src/mongo/db/s/move_primary_source_manager.cpp2
-rw-r--r--src/mongo/db/s/resharding/resharding_oplog_fetcher.cpp2
-rw-r--r--src/mongo/db/s/resharding/resharding_oplog_fetcher_test.cpp2
-rw-r--r--src/mongo/db/s/sharding_initialization_mongod.cpp2
-rw-r--r--src/mongo/db/s/sharding_state_recovery.cpp2
-rw-r--r--src/mongo/db/transaction_participant_test.cpp10
-rw-r--r--src/mongo/db/views/view_catalog_test.cpp6
-rw-r--r--src/mongo/dbtests/dbtests.cpp4
-rw-r--r--src/mongo/dbtests/extensions_callback_real_test.cpp2
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<DurableViewCatalogImpl>(_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));