summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mongo/db/s/reshard_collection_coordinator.cpp4
-rw-r--r--src/mongo/db/s/reshard_collection_coordinator.h2
2 files changed, 5 insertions, 1 deletions
diff --git a/src/mongo/db/s/reshard_collection_coordinator.cpp b/src/mongo/db/s/reshard_collection_coordinator.cpp
index 452f17fdaf6..76d75706614 100644
--- a/src/mongo/db/s/reshard_collection_coordinator.cpp
+++ b/src/mongo/db/s/reshard_collection_coordinator.cpp
@@ -43,7 +43,9 @@ ReshardCollectionCoordinator::ReshardCollectionCoordinator(
OperationContext* opCtx, const ShardsvrReshardCollection& reshardCollectionParams)
: ShardingDDLCoordinator_NORESILIENT(opCtx, reshardCollectionParams.getCommandParameter()),
_serviceContext(opCtx->getServiceContext()),
- _request(reshardCollectionParams),
+ _requestObj(reshardCollectionParams.serialize({})),
+ _request(ShardsvrReshardCollection::parse(IDLParserErrorContext("_shardsvrReshardCollection"),
+ _requestObj)),
_nss(_request.getCommandParameter()) {}
SemiFuture<void> ReshardCollectionCoordinator::runImpl(
diff --git a/src/mongo/db/s/reshard_collection_coordinator.h b/src/mongo/db/s/reshard_collection_coordinator.h
index 5ab6cd58704..56b6e5d0430 100644
--- a/src/mongo/db/s/reshard_collection_coordinator.h
+++ b/src/mongo/db/s/reshard_collection_coordinator.h
@@ -45,6 +45,8 @@ private:
SemiFuture<void> runImpl(std::shared_ptr<executor::TaskExecutor> executor) override;
ServiceContext* _serviceContext;
+ const OpMsgRequest _requestObj; // Owned object to guarantee the lifetime of the objects
+ // referenced by the parsed request '_request'
const ShardsvrReshardCollection _request;
const NamespaceString& _nss;
};