-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Fully Compatible
-
Sharding EMEA 2023-07-10
-
140
SERVER-77116 is built on the idea that multi=false updates/deletes should not yield after having performed one write, since upon restore the sharding placement could have changed and that would bubble up a StaleConfig exception. However, SERVER-77116 missed one case: After performing the writes, UpdateStage/DeleteStage restore their children stages, which can potentially fail due to WT failing with a WCE which needs to be handled by yielding. This undermines SERVER-77116. To solve this, we can skip restoring the children stages once UpdateStage/DeleteStage has reached EOF, since the children stages won't be used anymore.
- is caused by
-
SERVER-77116 Checking shard version during restore can cause StaleConfig exception propagated for writes incorrectly
- Closed
- is related to
-
SERVER-77428 DeleteStage will omit returning deleted document if WCE occurs when restoring its children
- Closed
-
SERVER-79408 Apply SERVER-77116 and SERVER-78470 to TimeseriesModifyStage
- Closed
-
SERVER-80859 Reshuffle UpdateStage/DeleteStage's logic to skip restore
- Closed
- related to
-
SERVER-91771 Reduce code duplication for StaleConfig handling within update and delete related PlanStages
- Backlog