diff options
Diffstat (limited to 'src/mongo/db/s/sharding_initialization_mongod.cpp')
-rw-r--r-- | src/mongo/db/s/sharding_initialization_mongod.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/mongo/db/s/sharding_initialization_mongod.cpp b/src/mongo/db/s/sharding_initialization_mongod.cpp index 2573113c24b..dc385b0449c 100644 --- a/src/mongo/db/s/sharding_initialization_mongod.cpp +++ b/src/mongo/db/s/sharding_initialization_mongod.cpp @@ -55,6 +55,7 @@ #include "mongo/db/s/shard_server_catalog_cache_loader.h" #include "mongo/db/s/transaction_coordinator_service.h" #include "mongo/db/server_options.h" +#include "mongo/db/shard_role.h" #include "mongo/db/vector_clock_metadata_hook.h" #include "mongo/executor/network_interface_factory.h" #include "mongo/executor/task_executor_pool.h" @@ -506,8 +507,15 @@ void ShardingInitializationMongoD::updateShardIdentityConfigString( write_ops::UpdateModification::parseFromClassicUpdate(updateObj)); try { - AutoGetCollection autoColl(opCtx, NamespaceString::kServerConfigurationNamespace, MODE_IX); - auto result = update(opCtx, autoColl.ensureDbExists(opCtx), updateReq); + auto collection = + acquireCollection(opCtx, + CollectionAcquisitionRequest( + NamespaceString(NamespaceString::kServerConfigurationNamespace), + PlacementConcern{boost::none, ShardVersion::UNSHARDED()}, + repl::ReadConcernArgs::get(opCtx), + AcquisitionPrerequisites::kWrite), + MODE_IX); + auto result = update(opCtx, collection, updateReq); if (result.numMatched == 0) { LOGV2_WARNING(22076, "Failed to update config server connection string of shard identity " |