From 7fc6c383a2b0b353b282bfdbb3c5faab9d798c55 Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Fri, 9 Oct 2026 20:08:44 -0700 Subject: [PATCH] quest: plan the Interop close-code and TS duration-fidelity flakes Co-Authored-By: Claude Opus 5.5 --- quest/m1/test-flakes-2/README.md | 2 ++ quest/m1/test-flakes-2/interop-close-code.md | 20 +++++++++++++++++++ .../m1/test-flakes-2/ts-duration-fidelity.md | 20 +++++++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 quest/m1/test-flakes-2/interop-close-code.md create mode 100644 quest/m1/test-flakes-2/ts-duration-fidelity.md diff --git a/quest/m1/test-flakes-2/README.md b/quest/m1/test-flakes-2/README.md index 93f0d160bc..f1fd9f1620 100644 --- a/quest/m1/test-flakes-2/README.md +++ b/quest/m1/test-flakes-2/README.md @@ -34,5 +34,7 @@ Public API: none. Wire: none. - [Relay restart rebind](/quest/m1/test-flakes-2/relay-restart-rebind.md) - the crash drill restarts on its original UDP address under concurrent load - [Impaired handshake](/quest/m1/test-flakes-2/impaired-handshake.md) - the impaired cluster drills' clients never time out while connecting +- [Interop close code](/quest/m1/test-flakes-2/interop-close-code.md) - the browser close-code test reliably sees `unauthorized` for a refused session +- [TS duration fidelity](/quest/m1/test-flakes-2/ts-duration-fidelity.md) - TS compliance captures the whole round-tripped stream - [Cluster burst overrun](/quest/m1/test-flakes-2/cluster-burst-overrun.md) - the impaired cluster burst drill always overruns its bottleneck, so it always exercises it - [Media audio tone](/quest/m1/media-audio-tone.md) - the `just test media` audio-tone check passes under load, fixed at its cause diff --git a/quest/m1/test-flakes-2/interop-close-code.md b/quest/m1/test-flakes-2/interop-close-code.md new file mode 100644 index 0000000000..be85064f81 --- /dev/null +++ b/quest/m1/test-flakes-2/interop-close-code.md @@ -0,0 +1,20 @@ +# [S] Interop close-code test sees the refusal it expects + +## Goal + +The Interop browser close-code test (`test/interop/clients/js/close.ts`) +reliably reports a refused session as `unauthorized`, never as +"Connection lost", fixed at its cause. + +## Plan + +Seen 2026-10-10 on #5158's first Interop run (`refused session`: "Connection +lost" instead of "unauthorized"); it passed on rerun and the PR didn't touch +that code. Planned under this questline's cause-first rules (decided +2026-10-10): find whether the refusal's close code is lost on the wire (a +close frame racing the connection teardown, as in the qmux close-flush work) +or the client reads the connection's state before the close arrives. Fix +that at its source, with a regression that fails without it. No retry and no +accepting either message. + +Public API: none expected. Wire: none expected. diff --git a/quest/m1/test-flakes-2/ts-duration-fidelity.md b/quest/m1/test-flakes-2/ts-duration-fidelity.md new file mode 100644 index 0000000000..ac4c232c95 --- /dev/null +++ b/quest/m1/test-flakes-2/ts-duration-fidelity.md @@ -0,0 +1,20 @@ +# [S] TS compliance duration-fidelity captures the whole source + +## Goal + +Interop's TS-compliance `duration-fidelity` check (`test/ts/run.sh`) captures +the whole round-tripped stream, not a fraction of it, fixed at its cause. + +## Plan + +Seen 2026-10-10 on #5158's second Interop run: the export captured 3.3 s of a +20.1 s source, and the check failed; it also failed once on #5140 and passed +on rerun. Planned under this questline's cause-first rules (decided +2026-10-10): find whether the export ends early (an announce `End`, linger, or +a catalog finish arriving before the media), starts late, or the capture is +cut off by the harness. Fix that at its source, with a regression that fails +without it. No longer timeout and no lower duration threshold. + +Check against #5147 (export ts follows announcements), which may change how an export ends. + +Public API: none expected. Wire: none expected.