diff options
-rw-r--r-- | src/mongo/db/s/reshard_collection_coordinator.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/s/reshard_collection_coordinator.h | 2 |
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; }; |