summaryrefslogtreecommitdiff
path: root/src/mongo/db/s/sharding_initialization_mongod.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/s/sharding_initialization_mongod.cpp')
-rw-r--r--src/mongo/db/s/sharding_initialization_mongod.cpp12
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 "