-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Test Csuite
-
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.
- blocks
-
WT-18737 Enable schema_disagg_abort test in CI
-
- Closed
-