-
Type: Bug
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: 5.1.0, 6.0.0, 7.0.0, 8.1.0-rc0, 8.0.0
-
Component/s: None
-
None
-
Catalog and Routing
-
ALL
-
CAR Team 2024-12-23, CAR Team 2025-01-06
-
200
-
3
When a router is aware of a stale version of a collection (which is not a timeseries), and the collection has now been re-created into a timeseries, the shard processing the request may bypass the shard version protocol. As a result, the shard might attempt to read from the old version of the collection rather than from the system.buckets collection.
Consider the following scenario:
- Create a database with the db primary shard being shard0.
- Create a sharded collection with chunks only in shard1.
- Make both RouterA and RouterB acknowledge in their routing information that the collection is located in shard1.
- Recreate the same sharded collection as a timeseries under RouterA, with chunks only in shard1.
- Insert some data into the timeseries collection using RouterA.
- RouterB attempts to read from the collection using stale routing information (from the previous incarnation when the collection was not a timeseries). As a result, the shard ignores the shard version protocol and fails to read the documents that were previously inserted.
This scenario illustrates how a router can lead to missed reads in a timeseries collection.
- related to
-
SERVER-80719 Review timeseries name disambiguation in sharded clusters
- Backlog