The ReshardingCollectionCloner includes the collectionUUID parameter to the aggregate command it runs. The CommonReshardingMetadata::getSourceUUID() value comes from the sharding catalog's belief of the source collection's UUID. We have seen a small number of instances—perhaps due to historical DDL bugs or direct writes against shards—where sharded collections do not have consistent collection UUIDs among each shard which owns data for the sharded collection, nor do any of the shards have a collection UUID consistent with the config.collections entry for the sharded collection in the sharding metadata. A collection's UUID cannot be modified directly. The discussed remediation would be to rewrite the contents of the sharded collection and resharding would do exactly that. To support this remediation method, resharding must offer a relaxed mode where it won't specify the collectionUUID parameter in its collection cloning aggregation to avoid triggering a NamespaceNotFound or CollectionUUIDMismatch error in a scenario where the collection UUIDs are inconsistent among shards.
- is related to
-
SERVER-88360 Remove "Sharding catalog and local catalog collection uuid do not match" tripwire assertion
- Closed
-
SERVER-88476 Re-introduce UUID inconsistency tassert
- Backlog