diff options
author | Jordi Serra Torrens <jordi.serra-torrens@mongodb.com> | 2021-12-28 08:13:09 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-12-28 08:38:32 +0000 |
commit | 5eab3ca8acaa0e8004c50112187b6809667157a2 (patch) | |
tree | 45eb692b33c6c8562a15856bcdcee3eebb4773dc | |
parent | 168086cae37581eeaa7513bfa3976cf554ffc79a (diff) | |
download | mongo-5eab3ca8acaa0e8004c50112187b6809667157a2.tar.gz |
SERVER-62207 Make ReshardCollectionCoordinator store an owned BSON object for the command
-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; }; |