-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: 8.3.0-rc0
-
Component/s: Upgrade/Downgrade
-
None
-
Catalog and Routing
-
Fully Compatible
-
CAR Team 2026-02-16, CAR Team 2026-03-02
-
0
-
🟩 Routing and Topology
-
None
-
None
-
None
-
None
-
None
-
None
Context: setFCV has three phases ("start", "prepare", "complete"). Those were introduced for the sharded clusters setFCV protocol, but for a replica set we can understand setFCV just needs to run all three phases in succession.
Â
Pain point: Currently on a replica set if setFCV is interrupted in e.g. the ‘complete’ phase, running setFCV again re-runs all three phases (i.e. ‘start’, ‘prepare’ and ‘complete’). This requires all steps to be idempotent even if they are re-executed "out-of-order", and when updating the FCV document, we need some careful logic to not roll it back to a previous state. This makes it hard to add the extra phase for Symmetric FCV.
Â
Solution: At the beginning of setFCV, based on the FCV document decide "which phases need to run?", and then only run those phases. We should take inspiration from how the ShardingDDLCoordinators are structured.
- causes
-
SERVER-128025 setFCV should abort resharding coordinators before draining in config shard topology
-
- Closed
-
- is depended on by
-
SERVER-119485 Add a persisted phase to setFCV after enabling target FCV features
-
- In Code Review
-
- related to
-
SERVER-128064 Authoritative metadata cloning DDL may run on fully upgraded shards
-
- In Code Review
-
-
SERVER-125824 Avoid asserting "phase was already done" if starting a new FCV transition
-
- Closed
-