-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Sharding
-
Fully Compatible
-
ALL
-
v4.4, v4.2
-
Sharding 2020-07-13, Sharding 2020-07-27, Sharding 2020-08-10
-
5
The ChunkSplitter takes in min/max values for the chunk range as input parameters, but then looks the chunk up again in the routing info based on the min key. The min/max for that chunk are used in the call to splitVector, but the call to splitChunk uses the input parameters.
The problem is that in between the time the chunk was submitted for splitting and the time that we look up the chunk again in the routing table, the routing table could have changed and these values could be different, leading to weird outcomes.