-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Catalog and Routing
-
None
-
None
-
None
-
None
-
None
-
None
-
None
SERVER-127663 introduced the disagg_repl_jscore_passthrough_multiversion_last_patch_old_new and disagg_repl_jscore_passthrough_multiversion_last_patch_new_old suites. These provision a 2-node DisaggReplicaSetFixture (buildscripts/modules/atlas/fixtures/disagg_replica_set.py) where the primary and secondary run fixed old/new binaries for the duration of the run. The binary of each node is never actually upgraded or downgraded during the test — the suite only exercises a statically mixed-version topology, not a live binary transition.
Because the oplog is replicated from primary to secondary, that static topology already exercises cross-version oplog replication, so oplog format incompatibilities are already covered. What it does not cover is a node restarting in-place on data files (and other on-disk state) written by the other binary version. This ticket introduces a new DSC multiversion suite to catch those on-disk format incompatibilities.
The new suite continuously steps down the primary and, on each stepdown, swaps the former primary's binary across the version boundary (old→new for upgrade, new→old for downgrade), restarting it on its existing data files. This mirrors what retryable_writes_downgrade does — it runs the ContinuousStepdown hook with should_downgrade: true, which restarts the stepped-down node on a different binary version via change_version_and_restart_node — but adapted for the disaggregated-storage (DSC) cluster topology.
Scope:
- Verify/extend DisaggReplicaSetFixture so a node's binary can be swapped and restarted in-place on its existing disaggregated-storage data (the ContinuousStepdown/change_version_and_restart_node path).
- Add a new matrix suite (analogous to the existing disagg_multiversion override and its _old_new / _new_old generated suites) that wires in ContinuousStepdown with should_downgrade: true.
- Wire the suite into the relevant DSC Evergreen variant(s).
Implementation details (exact hook options, fixture changes, exclude tags) belong in the PR.