-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Catalog and Routing
-
Fully Compatible
-
CAR Team 2025-03-17
This function consults the routing information to build requests for a specified list of shards and attaches the `dbVersion` to all shards if there is no routing table in the chunk manager. However, it does not check for incorrect usage of this API.
While the function correctly handles shard version, the issue arises when using the database version protocol. It should only append the `dbVersion` if there is exactly one shard and it is the primary shard according to the routing information.
Currently, we have identified at least one misuse of this function: when `mergeShardId` is selected as the config server, but the routing information is taken from a different database. This scenario occurs through the `$listClusterCatalog` aggregation.
[Edit] Aim of this ticket: bypass (not version the command) when the targeted shard does not correspond to the primary database shard from the routing information. This unblocks SERVER-100036.
- is depended on by
-
SERVER-100036 Implement CRUD path for authoritative database versioning
-
- Blocked
-
- is related to
-
SERVER-101687 Investigate misuses of `buildVersionedRequests` from `cluster_command_helpers` that incorrectly use the database version protocol
-
- Backlog
-