From 5eab3ca8acaa0e8004c50112187b6809667157a2 Mon Sep 17 00:00:00 2001 From: Jordi Serra Torrens Date: Tue, 28 Dec 2021 08:13:09 +0000 Subject: SERVER-62207 Make ReshardCollectionCoordinator store an owned BSON object for the command --- src/mongo/db/s/reshard_collection_coordinator.cpp | 4 +++- src/mongo/db/s/reshard_collection_coordinator.h | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) 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 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 runImpl(std::shared_ptr 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; }; -- cgit v1.2.1