Skip to content

test_ltx2_video's span-slack bound reds an unmutated tree in 5 of 53 runs, and its per-record multiplier is read from the artifact under test #1559

Description

@localai-bot

ltx2 video: the three carrying phases contain their work and the load keeps its order asserts CHECK(span_slack <= span_bound) — assertion (1c) in
tests/vllm/multimodal/test_ltx2_video.cpp. It landed in 6b48edb2c (#1503) to
un-red the build-test-cpu lane. It reds that lane instead, on an unmutated
tree.

Measured at 6b48edb2c, x86_64, CMAKE_BUILD_TYPE empty exactly as
build-test-cpu configures it, one build directory, no mutation of any kind,
53 runs of the case: five runs red, and the population is what the third shape did not have: three of 33 on the box as shared (loadavg 79.7-118.0), two of 10 with an added eight-way spin load (loadavg 91.7-145.9), and zero of 10 pinned to two cores with taskset -c 18,19 (loadavg 84.5-105.6). 424 leaf checks, 636 leaf-record observations.

run leaf records slack bound leaf record
A13 decode.video r2 3 1.161 ms 0.75 ms 1.257 s
A16 artifacts.frames r2 2 1.387 ms 0.50 ms 4.826 ms
A18 decode.audio r1 1 10.032 ms 0.25 ms 6.783 s
B6 denoise r2 1 0.410 ms 0.25 ms 24.181 s
B8 denoise r2 1 0.963 ms 0.25 ms 24.655 s

Three defects, and only the first is about the constant.

F1 — the 0.25 ms constant is inside the honest distribution of the quantity it
bounds, and raising it is not sufficient.
The bound is capped at
0.5 * leaf_seconds, so on a short leaf record no constant can lift it.
artifacts.frames r2 record 1 measured 1.361 ms of slack on a 4.826 ms record,
where the cap forbids any bound above 2.413 ms. decode.video's
reopen-after-the-last-chunk record is 19-89 us of which 7-32 us — 4.6% to 72.3% —
is its own two boundaries, so a 50% share sits inside that record's own
distribution.

F2 — the multiplier is read from the artifact under test. The bound is
min(kSpanSlackPerRecord * leaves.size(), 0.5 * leaf_seconds) and
leaves.size() is whatever RecordsNamed(table, c.leaf, c.render) returned,
guarded only by REQUIRE(!leaves.empty()) and tied to no independent number, so
a defect that emits ONE EXTRA leaf record enlarges its own budget by a whole
constant. Assertion (0) counts the SUB-SCOPE records against
Ltx2ConditioningTrace; nothing counts the leaf's own. The slack is also
SUMMED, so a swallow concentrated in one record of a three-record leaf draws on
the whole 3 * kSpanSlackPerRecord. The comment claiming that summing "makes
the bound STRICTER on multi-record leaves rather than looser" is false
, and the
looseness is load-bearing: under ASan artifacts.frames r2 measured 3.354 ms of
slack against a 6 ms bound and passed only because that leaf has two records.

F3 — the failure message names the wrong cause. It ends "this quantity is two
instrument boundaries and does not move with the box". Within one build
configuration on one host, decode.audio r1 record 0 spans 36.1 us to 10032.0 us
277.9x. That sentence is the first thing a reader sees on a red, and it
points at a swallowed phase when the cause is scheduler contention. The same
stale claim sits in two further comments, which also still say "flat 0.25 ms"
though the bound has been per-record, configuration-dependent and capped since
6b48edb2c.

FIXED IN THE SAME FLOW, in row/GATE-SPAN-SLACK-FLAKE: each leaf record is bounded separately
against one constant, leaves.size() leaves the arithmetic, the min cap moves
to the record and its binding is what declares a record below the instrument's
resolution, and the three comments are corrected. What the repair can no longer
see is stated at the site and under ### Owed out of W0.

Found by a fresh review of #1503, which repaired #1494 and #1499 (both closed).
Owned by LTX25-DEVICE-RESIDENCY (#1264), spec
ltx25-device-residency.md.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions