diff options
Diffstat (limited to 'src/mongo/db/s/config/sharding_catalog_manager_database_operations.cpp')
-rw-r--r-- | src/mongo/db/s/config/sharding_catalog_manager_database_operations.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/mongo/db/s/config/sharding_catalog_manager_database_operations.cpp b/src/mongo/db/s/config/sharding_catalog_manager_database_operations.cpp index 2f77383c745..19b2c07def0 100644 --- a/src/mongo/db/s/config/sharding_catalog_manager_database_operations.cpp +++ b/src/mongo/db/s/config/sharding_catalog_manager_database_operations.cpp @@ -233,13 +233,14 @@ DatabaseType ShardingCatalogManager::createDatabase( // - a "commitSuccessful" notification after completing the write into config.databases // will allow change streams to stop collecting events on the namespace created from // shards != resolvedPrimaryShard. + const auto allShards = Grid::get(opCtx)->shardRegistry()->getAllShardIds(opCtx); { DatabasesAdded prepareCommitEvent( - {DatabaseNameUtil::deserialize(boost::none, dbName)}, false /*areImported*/); - prepareCommitEvent.setPhase(CommitPhaseEnum::kPrepare); + {DatabaseNameUtil::deserialize(boost::none, dbName)}, + false /*areImported*/, + CommitPhaseEnum::kPrepare); prepareCommitEvent.setPrimaryShard(resolvedPrimaryShard->getId()); - uassertStatusOK(_notifyClusterOnNewDatabases( - opCtx, prepareCommitEvent, {resolvedPrimaryShard->getId()})); + uassertStatusOK(_notifyClusterOnNewDatabases(opCtx, prepareCommitEvent, allShards)); } const auto transactionChain = [db](const txn_api::TransactionClient& txnClient, @@ -279,10 +280,11 @@ DatabaseType ShardingCatalogManager::createDatabase( hangBeforeNotifyingCreateDatabaseCommitted.pauseWhileSet(); DatabasesAdded commitCompletedEvent( - {DatabaseNameUtil::deserialize(boost::none, dbName)}, false /*areImported*/); - commitCompletedEvent.setPhase(CommitPhaseEnum::kSuccessful); - const auto notificationOutcome = _notifyClusterOnNewDatabases( - opCtx, commitCompletedEvent, {resolvedPrimaryShard->getId()}); + {DatabaseNameUtil::deserialize(boost::none, dbName)}, + false /*areImported*/, + CommitPhaseEnum::kSuccessful); + const auto notificationOutcome = + _notifyClusterOnNewDatabases(opCtx, commitCompletedEvent, allShards); if (!notificationOutcome.isOK()) { LOGV2_WARNING(7175500, "Unable to send out notification of successful createDatabase", |