summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcos Jose Grillo Ramirez <marcos.grillo@mongodb.com>2022-03-16 19:02:51 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-03-16 20:59:05 +0000
commiteef965232b1932c519e4df3e436c8cc603753b72 (patch)
tree2d2629f7b17f288058b9692955f61ebbe12127aa
parentce0bbc5ec1728e443c5ff893a78693b24570b80d (diff)
downloadmongo-eef965232b1932c519e4df3e436c8cc603753b72.tar.gz
SERVER-64519 Filter fields attached to the CritSec reason when creating a collection to make collection creation backward compatible
-rw-r--r--src/mongo/db/s/create_collection_coordinator.cpp18
-rw-r--r--src/mongo/db/s/create_collection_coordinator.h2
2 files changed, 16 insertions, 4 deletions
diff --git a/src/mongo/db/s/create_collection_coordinator.cpp b/src/mongo/db/s/create_collection_coordinator.cpp
index eaf25a98659..c63f7e0210d 100644
--- a/src/mongo/db/s/create_collection_coordinator.cpp
+++ b/src/mongo/db/s/create_collection_coordinator.cpp
@@ -423,11 +423,23 @@ CreateCollectionCoordinator::CreateCollectionCoordinator(ShardingDDLCoordinatorS
const BSONObj& initialState)
: ShardingDDLCoordinator(service, initialState),
_doc(CreateCollectionCoordinatorDocument::parse(
- IDLParserErrorContext("CreateCollectionCoordinatorDocument"), initialState)),
- _critSecReason(BSON("command"
+ IDLParserErrorContext("CreateCollectionCoordinatorDocument"), initialState)) {
+
+ // TODO SERVER-64559: remove request from critSec reason.
+ auto filter = BSON(CreateCollectionRequest::kShardKeyFieldName
+ << 1 << CreateCollectionRequest::kUniqueFieldName << 1
+ << CreateCollectionRequest::kNumInitialChunksFieldName << 1
+ << CreateCollectionRequest::kPresplitHashedZonesFieldName << 1
+ << CreateCollectionRequest::kInitialSplitPointsFieldName << 1
+ << CreateCollectionRequest::kTimeseriesFieldName << 1
+ << CreateCollectionRequest::kCollationFieldName << 1);
+
+ _critSecReason = BSON("command"
<< "createCollection"
<< "ns" << nss().toString() << "request"
- << _doc.getCreateCollectionRequest().toBSON())) {}
+ << _doc.getCreateCollectionRequest().toBSON().filterFieldsUndotted(filter,
+ true));
+}
boost::optional<BSONObj> CreateCollectionCoordinator::reportForCurrentOp(
MongoProcessInterface::CurrentOpConnectionsMode connMode,
diff --git a/src/mongo/db/s/create_collection_coordinator.h b/src/mongo/db/s/create_collection_coordinator.h
index bee8b8d2c79..3ecb0ac2a44 100644
--- a/src/mongo/db/s/create_collection_coordinator.h
+++ b/src/mongo/db/s/create_collection_coordinator.h
@@ -147,7 +147,7 @@ private:
void _logEndCreateCollection(OperationContext* opCtx);
CreateCollectionCoordinatorDocument _doc;
- const BSONObj _critSecReason;
+ BSONObj _critSecReason;
// Objects generated on each execution.
boost::optional<ShardKeyPattern> _shardKeyPattern;