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-04-11 10:33:26 +0000
commit8ba7f40afb93eb23ec60015a62c1b5eaeb79f840 (patch)
tree9d84aeeb9e756bc377e419fe4104cd153dbf96dd
parenta4cf24004bf4a7b8a9f8b5c187e38f861b2bb8e5 (diff)
downloadmongo-8ba7f40afb93eb23ec60015a62c1b5eaeb79f840.tar.gz
SERVER-64519 Filter fields attached to the CritSec reason when creating a collection to make collection creation backward compatible
(cherry picked from commit eef965232b1932c519e4df3e436c8cc603753b72)
-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 3dfa6129954..dd75e93019f 100644
--- a/src/mongo/db/s/create_collection_coordinator.cpp
+++ b/src/mongo/db/s/create_collection_coordinator.cpp
@@ -383,11 +383,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;