ExportXMLWordPrintableJSON

    • Storage Engines - Foundations
    • 27.565
    • SE Foundations - 2026-09-29
    • 1

      The parent's run timeline ticks until the -t stop time even when no node is left alive. run_children discards the result of children_poll() (parent.c:311), and a killed node is never restarted. After the last kill, the rest of the run is idle wall time.

      A kill or switch needs a live target, so nothing can happen once every node is dead. Ending the loop there loses no coverage.

      Cost in CI

      The long configs run 10 iterations of -t 300. Durations are from wiredtiger-disagg:

      • -r l -k 150 (crash, legacy-crash): the only node dies at 150 s, so 150 s of each iteration is idle. That is about 25 min of each ~55 min task.
      • -r lf -k l100 -k f200 (multi-crash): 100 s idle per iteration, about 17 min per task.

      WT-18737 schedules these on amazon2023-stress-tests-arm64 and amazon2023-arm64-asan on every commit. That comes to about 2.2 host-hours per commit, roughly 14% of the long-config cost.

      Fix

      Leave the timeline loop in run_children as soon as children_poll() reports no child alive. Then go straight to the graceful-stop and verification path.

      Also: the CONFIG line drops all but the last -k

      print_run_banner (main.c:412) passes the start of the buffer to testutil_snprintf_len_incr for every kill spec. That helper writes at the pointer it is given and only advances the length (os_snprintf.c:21-23), so each spec overwrites the previous one.

      Example: -r lf -k l8 -k f8 prints CONFIG: ... -r lf -k f8 .... For the multi-crash config (-k l100 -k f200), replaying the "reproducible" CONFIG line gives a follower-only kill.

      Fix: write each spec at kill_args + len, with the remaining size.

            Assignee:
            Alex Blekhman
            Reporter:
            Alex Blekhman
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: