Add multi-node schema abort test infrastructure — leader and follower processes

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Storage Engines - Foundations
    • 386.306
    • SE Foundations - 2026-07-21
    • 5

      Add the foundational two-process infrastructure for the multi-node schema abort test. No crash yet — validates that the leader and follower can run end-to-end cleanly before layering kill modes on top.

      Extend the leader workload from WT-17972 with a pipe relay: the oplog writer relays every CREATE/DROP and SCHEMA_OP_CKPT event to the follower over a shared pipe in addition to writing leader record files. Events are written as fixed-size SCHEMA_EVENT structs

      {type, thread_id, epoch, uri}

      .

      Parent creates a pipe() before forking. Leader inherits the write end, follower the read end. Parent closes the write end after both forks so the follower receives EOF when the leader dies. Leader ignores SIGPIPE so it keeps running if the follower dies mid-run.

      Fork a follower child that loops on read() of fixed-size SCHEMA_EVENT structs. On CREATE/DROP it records the leader-originated event to its own per-thread record files. On SCHEMA_OP_CKPT it calls pl_get_complete_checkpoint and reconfigures with the returned checkpoint metadata. Pipe EOF or partial read signals the leader is gone; follower exits cleanly.

      Parent waits for both children to exit.

      Deliverables:

      • Extend test/csuite/schema_disagg_leader_abort/ from WT-17972 with a multi-node flag that forks a follower child, sets up the pipe, and drives the follower pipe-reader loop. Add verify.c support for verifying the follower home.
      • Evergreen task entry in test/evergreen_disagg.yml on the disagg build variant.

            Assignee:
            [DO NOT USE] Backlog - Storage Engines Team
            Reporter:
            Jie Chen
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: