From 089252872f20ff470e7a8c9ed98c9d2193446d00 Mon Sep 17 00:00:00 2001 From: Luke Curley <432854+kixelated@users.noreply.github.com> Date: Mon, 9 Nov 2026 18:16:36 -0800 Subject: [PATCH] test(interop): quarantine the cpp and rust finish cases and plan their fix Co-Authored-By: Claude Opus 5.5 --- quest/m0/test-flakes-2/README.md | 5 ++++ quest/m0/test-flakes-2/interop-finish.md | 29 ++++++++++++++++++++++++ test/interop/interop.sh | 9 ++++++++ 3 files changed, 43 insertions(+) create mode 100644 quest/m0/test-flakes-2/interop-finish.md diff --git a/quest/m0/test-flakes-2/README.md b/quest/m0/test-flakes-2/README.md index cd08915c70..2cccd349c2 100644 --- a/quest/m0/test-flakes-2/README.md +++ b/quest/m0/test-flakes-2/README.md @@ -243,9 +243,14 @@ reader got `Unroutable` after the endpoint closed during [moq-dev/moq#8293](https://github.com/moq-dev/moq/pull/8293)'s loaded `just check`. It is quarantined with `pytest.mark.skip` until its child fixes it. +Added 2026-11-09 (maintainer, /quest-complete): interop's `finish` cases with +a cpp or rust publisher, which failed under a loaded host and passed on rerun. +They are quarantined until their child fixes them. + Public API: none. Wire: none. ## Required - [Fallback playback](/quest/m0/test-flakes-2/ietf22-fallback.md) - a browser viewer follows a fallback within the media lane's bound without dropping its session - [js/net's lite-07 datagram queue test holds up under load](/quest/m0/test-flakes-2/datagram-queues.md) - the test waits for the first track's queue instead of asserting at once, and its `test.skip` is removed +- [Interop's cpp and rust finish cases hold up under load](/quest/m0/test-flakes-2/interop-finish.md) - the publishers' finish cells pass under load, and their quarantine is removed diff --git a/quest/m0/test-flakes-2/interop-finish.md b/quest/m0/test-flakes-2/interop-finish.md new file mode 100644 index 0000000000..fda97fc79a --- /dev/null +++ b/quest/m0/test-flakes-2/interop-finish.md @@ -0,0 +1,29 @@ +# [S] Interop's cpp and rust finish cases hold up under load + +## Goal + +`just test interop --finish --all` passes its `finish cpp -> *` and +`finish rust -> *` cells on a loaded host, and their quarantine in +`test/interop/interop.sh`'s `run_finishes` is removed. + +## Plan + +Planned 2026-11-09 (maintainer, /quest-complete), under the repository's +flaky-test rule. Two agents' local `just test interop --all` runs, both under a +host load average above 30, failed once each and passed on rerun. No logs were +kept. + +- All nine `finish cpp -> *` cells failed together, while iterating + [moq-dev/moq#8358](https://github.com/moq-dev/moq/pull/8358). +- The `finish rust -> *` cells failed, while iterating + [moq-dev/moq#8220](https://github.com/moq-dev/moq/pull/8220): the Rust + publisher never printed `finish acknowledged`, though every reader ended + clean. + +Reproduce it first, under load as the epic describes, with the interop logs +kept. Suspected, not confirmed: the publisher's wait for the finish +acknowledgement (the FIFO the runner writes after every reader ends). That +cpp's cells all failed together also points at its publisher rather than any +reader. Fix the cause, never with a longer limit, then remove the quarantine. + +Public API: none. Wire: none. diff --git a/test/interop/interop.sh b/test/interop/interop.sh index 81dd928a6e..ad911f4db7 100755 --- a/test/interop/interop.sh +++ b/test/interop/interop.sh @@ -1812,6 +1812,15 @@ run_finishes() { fi for pub in "${PUB_LIST[@]}"; do name="finish-$pub" + # Quarantined: quest/m0/test-flakes-2/interop-finish.md. The cpp and rust publishers' + # finish cases failed under a loaded host and passed on rerun. + if [[ "$pub" == cpp || "$pub" == rust ]]; then + for sub in "${SUB_LIST[@]}"; do + echo " SKIP finish $pub -> $sub (quarantined)" + record skip case=finish publisher="$pub" subscriber="$sub" detail="quarantined: quest/m0/test-flakes-2/interop-finish.md" + done + continue + fi # The fixture and its .health sibling share a parent, so one prefix grant covers both: # moq-transport's AUTH extension carries prefixes alone. broadcast="$name-$$-$RANDOM/fixture.hang"