ExportXMLWordPrintableJSON

    • 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.

            Assignee:
            Unassigned
            Reporter:
            Tommaso Tocci
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: