summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mongo/db/namespace_string.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mongo/db/namespace_string.cpp b/src/mongo/db/namespace_string.cpp
index 6ad3b027165..88a821840c3 100644
--- a/src/mongo/db/namespace_string.cpp
+++ b/src/mongo/db/namespace_string.cpp
@@ -280,19 +280,22 @@ bool NamespaceString::isLegalClientSystemNS(
* Process updates to 'admin.system.version' individually as well so the secondary's FCV when
* processing each operation matches the primary's when committing that operation.
*
- * Process updates to config.tenantMigrationRecipients individually so they serialize after inserts
- * into config.donatedFiles.<migrationId>.
+ * Process updates to 'config.tenantMigrationRecipients' individually so they serialize after
+ * inserts into 'config.donatedFiles.<migrationId>'.
*
* Oplog entries on 'config.shards' should be processed one at a time, otherwise the in-memory state
* that its kept on the TopologyTimeTicker might be wrong.
*
+ * Serialize updates to 'config.tenantMigrationDonors' and 'config.shardSplitDonors' to avoid races
+ * with creating tenant access blockers on secondaries.
*/
bool NamespaceString::mustBeAppliedInOwnOplogBatch() const {
return isSystemDotViews() || isServerConfigurationCollection() || isPrivilegeCollection() ||
_ns == kDonorReshardingOperationsNamespace.ns() ||
_ns == kForceOplogBatchBoundaryNamespace.ns() ||
_ns == kTenantMigrationDonorsNamespace.ns() ||
- _ns == kTenantMigrationRecipientsNamespace.ns() || _ns == kConfigsvrShardsNamespace.ns();
+ _ns == kTenantMigrationRecipientsNamespace.ns() || _ns == kShardSplitDonorsNamespace.ns() ||
+ _ns == kConfigsvrShardsNamespace.ns();
}
NamespaceString NamespaceString::makeListCollectionsNSS(const DatabaseName& dbName) {