diff --git a/quest/m0/test-flakes-2/README.md b/quest/m0/test-flakes-2/README.md index b60c298e85..a293a8c68e 100644 --- a/quest/m0/test-flakes-2/README.md +++ b/quest/m0/test-flakes-2/README.md @@ -249,9 +249,14 @@ cancelled one missed an appended group during [moq-dev/moq#8363](https://github.com/moq-dev/moq/pull/8363)'s loaded `just check`. It is quarantined with `t.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 - [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 - [The Go wrapper's cancelled-RecvGroup test holds up under load](/quest/m0/test-flakes-2/go-recv-cancel.md) - a `RecvGroup` after a cancelled one is woken by the next group, and its `t.Skip` 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"