fix(quic-interop): bump TRANSFER_TIMEOUT_SEC to 60s for multiplexing

aioquic multiplexing qlog showed:
  t=31424: still receiving STREAM frames
  t=31493: PTO timer expired
  t=31507: connection_closed (owner: local)

We were still actively transferring when our 30s timeout fired. The
multiplexing testcase generates many small files (3431 sim packets
captured for the run) and download throughput on Mac+Rosetta is
dominated by per-write filesystem overhead in the Docker volume mount.

60s gives enough headroom without making fast-completing tests slower.
Doesn't fix any real protocol issue — just lets the test budget match
the workload.

If multiplexing still fails after this, the next investigation is the
sequential `.map { it.await() }` pattern in runTransferTest: a single
hung stream blocks the await chain even though others completed.

https://claude.ai/code/session_01HcvfQq1ttPV9PkRoJb4nyT
This commit is contained in:
Claude
2026-05-07 01:11:12 +00:00
parent 17b80270d9
commit 9a74d1d5df
@@ -55,7 +55,14 @@ private const val EXIT_FAIL = 1
private const val EXIT_UNSUPPORTED = 127
private const val HANDSHAKE_TIMEOUT_SEC = 10L
private const val TRANSFER_TIMEOUT_SEC = 30L
// Multiplexing generates ~hundreds-to-thousands of small files; download
// throughput on Mac+Rosetta is dominated by Docker filesystem overhead
// per-write. 30s wasn't enough for the larger file counts; the qlog
// against aioquic showed us still actively receiving STREAM frames at
// t=31s when our local timeout fired. 60s gives more headroom without
// inflating turnaround for the cases that actually complete fast.
private const val TRANSFER_TIMEOUT_SEC = 60L
fun main() {
val role = System.getenv("ROLE") ?: "client"