diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mongo/db/namespace_string.cpp | 9 |
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) { |