joule-moq-ingest: the SRT test's burst of losses mid-stream, not where the publisher closes #548
Loading…
Reference in a new issue
No description provided.
Delete branch "test/srt-burst-mid-stream"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
an_srt_publisher_reaches_a_relay_subscriber_with_every_receiptfailed in main's run for #538's merge (afd1c246), in the conformance gate'sjoule-moq-ingest, every targetjob:ended=2isIDLE: the gateway ended the session on its 5 s idle timeout, so it never saw the publisher's shutdown. That one test took about 10 s, which is the close plus the 5 s idle timeout.Why
The test's proxy drops datagrams by their index, using a seeded generator (3% each way). It also drops a fixed burst of six toward the gateway, at indices 200–205. The publisher sends three SHUTDOWNs back to back when it closes. I added a temporary, uncommitted counter and ran the test 20 times on Linux: the publisher closed after 211–215 datagrams every time, with no SHUTDOWN dropped.
The generator is deterministic per index, so the drop pattern can be computed exactly. Past index 190, the only three consecutive drops are the burst. When a host sends a few datagrams fewer before the close, so it closes at index 200–203, all three SHUTDOWNs fall in the burst and the gateway ends the session as idle.
The change
The burst moves to indices 100–105, mid-stream among the data, with a comment saying why. With it there:
Checked
contrib_srttest file (5 tests), 20 runs each on Linux and on the M3 Ultra: 40 of 40 passed (5 of 5 tests in each).🤖 Generated with Claude Code