Skip to content

Accept zero-output as a valid seize in the recovery-disabled resample-merge test - #174

Merged
cboulay merged 1 commit into
devfrom
fix-seize-test-zero-output
Jul 8, 2026
Merged

Accept zero-output as a valid seize in the recovery-disabled resample-merge test#174
cboulay merged 1 commit into
devfrom
fix-seize-test-zero-output

Conversation

@cboulay

@cboulay cboulay commented Jul 8, 2026

Copy link
Copy Markdown
Member

Follow-up to #172, fixing the CI failure observed on PR #173 (Windows runner).

What happened

Exactly the failure mode anticipated in #172's description, converted from a silent multi-hour hang into a visible 4-second failure: under heavy runner load (both hubs logged under subscriber backpressure), the resampler's warmup lost the race with the chunk-15 seize. The reference jumped backward before the first merged message was ever emitted, the armed idle terminator tore the graph down, and the test failed with n_msgs = 0, last_t = -inf.

Why relaxing the assertion is the right fix (not later glitch_at / slower dispatch)

The property this test documents is: with recovery disabled, output ceases and never reaches the end of the stream. Zero output is that property — the seize simply won before the first emission. Retiming the schedule (glitch_at/dispatch_dt) would only shrink the race window, leaving the flake in place for a sufficiently loaded runner.

The n_msgs > 0 conjunct was a liveness sanity, but it is redundant: test_resample_merge_healthy_system proves liveness of the identical wiring (no glitch) and asserts the stream reaches ~1.8 s. A regression that silenced the pipeline entirely would fail there.

The seize upper bound (last_t < 0.6) is unchanged, so a run where recovery does happen (output past the glitch) still fails.

All 4 tests pass locally. After merge, re-running #173's checks should clear it — the flake is in dev's test, not that PR's code.

On a loaded CI runner (observed on Windows), the resampler's warmup can lose
the race with the chunk-15 seize: the reference jumps backward before the
first merged message is ever emitted, the armed idle terminator fires after
4 s with an empty log, and last_t is -inf. That is the property under test
-- output ceased and never reached the end of the stream -- so drop the
n_msgs > 0 conjunct that turned it into a failure. Wiring liveness is
already proven by test_resample_merge_healthy_system on the identical
graph.
@cboulay
cboulay merged commit 2c110ef into dev Jul 8, 2026
14 checks passed
@cboulay
cboulay deleted the fix-seize-test-zero-output branch July 8, 2026 14:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant