From 3d247ab2d5286648aaf9b8f1d93b6744dfe16a62 Mon Sep 17 00:00:00 2001 From: robobun <117481402+robobun@users.noreply.github.com> Date: Sun, 6 Sep 2026 06:59:41 +0000 Subject: [PATCH] test: mark the remaining h3 batch tests flaky so one handshake flake does not fail CI HTTP3HandshakeFailed is an intermittent QUIC handshake failure that appears on any h3 test in the parallel CI batch under load. The runner re-runs a failed batch file alone only when test/flaky-tests.txt lists it. Every other h3 test in the batch is listed (serve-http3, fetch-http3-client, fetch-http3-cold-post, fetch-backpressure, serve-http2-lifecycle, serve-http2), so the flake self-heals on the run-alone. These four were omitted, so one flake turns the whole job red with no retry: - test/js/bun/http/serve-direct-readable-stream.test.ts - test/js/bun/http/serve-protocols.test.ts - test/js/bun/stream/direct-readable-stream.test.tsx - test/js/web/fetch/fetch-http3-adversarial.test.ts Add them so a batch failure re-runs the file alone, where it passes. --- test/flaky-tests.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/flaky-tests.txt b/test/flaky-tests.txt index 36556d28a5e2..2db6a97ae272 100644 --- a/test/flaky-tests.txt +++ b/test/flaky-tests.txt @@ -62,9 +62,11 @@ test/js/bun/http/proxy-stress-concurrent.test.ts # 1 of 80 builds; mac test/js/bun/http/proxy.test.js # 3 of 80 builds; parallel batch; should use proxy when NO_PROXY has different port: expect(received).toBe(expected) (in... test/js/bun/http/proxy.test.ts # 1 of 80 builds; parallel batch; https target (CONNECT): expect(received).toBe(expected) test/js/bun/http/request-smuggling.test.ts # 3 of 80 builds; mac +test/js/bun/http/serve-direct-readable-stream.test.ts # h3 case in the parallel batch: HTTP3HandshakeFailed (build 108109); passes alone test/js/bun/http/serve-http2-lifecycle.test.ts # stop with a stream open on each: test timed out (17 of the last 20 failures), HTTP3HandshakeFailed (2 of 20); PING frames do not keep a connection alive: no GOAWAY before the close (1 of 20) test/js/bun/http/serve-http2.test.ts # 4 of 80 builds; parallel batch; 2 MB request body streamed to the handler (WINDOW_UPDATE path): expect(received).toBe(... test/js/bun/http/serve-http3.test.ts # 3 of 80 builds; mac, windows +test/js/bun/http/serve-protocols.test.ts # h3 cases in the parallel batch: HTTP3HandshakeFailed (builds 107194, 108378, 110131, 110298); passes alone test/js/bun/http/serve-stream-body-error.test.ts # 1 of 80 builds; start-async-reject: the rejection is handled and the error is still reported: expect(r... test/js/bun/http/serve.test.ts # 4 of 80 builds; mac test/js/bun/io/bun-write.test.js # 1 of 80 builds; parallel batch; Bun.write() without uv_fs_copyfile: test timed out @@ -88,6 +90,7 @@ test/js/bun/spawn/spawn-ipc-gc.test.ts # 1 of 80 builds; Subprocess with ipc is test/js/bun/spawn/spawn-maxbuf.test.ts # 2 of 80 builds; windows, debian test/js/bun/spawn/spawn-stdin-readable-stream.test.ts # 1 of 80 builds; debian test/js/bun/spawn/spawnsync-isolated-event-loop.test.ts # 39 of 80 builds; spawnSync under GC pressure with a worker and a server keeps the main loop balanced and... +test/js/bun/stream/direct-readable-stream.test.tsx # h3 cases in the parallel batch: HTTP3HandshakeFailed (builds 107619, 109428, 110120, 110599); passes alone test/js/bun/test/done-async.test.ts # 2 of 80 builds; parallel batch; done() causes the test to fail when it should: expect(received).toBe(expected) (in the... test/js/bun/test/expect-assertions.test.ts # 4 of 80 builds; parallel batch; expect.assertions causes the test to fail when it should: expect(received).toBe(expect... test/js/bun/test/parallel/test-docker-build-alpine.ts # 1 of 80 builds; ubuntu @@ -142,6 +145,7 @@ test/js/web/fetch/abort-signal-leak.test.ts # 4 of 80 builds; parallel batch; ' test/js/web/fetch/body.test.ts # 10 of 80 builds; rejects a fetch textStream() when the connection drops after an empty decode: expect(r... test/js/web/fetch/fetch-backpressure.test.ts # stalled no consumer drains the full body: test timed out (16 builds). The stall gate needs 512 KiB of socket buffers; #41014 lowers it to the client high-water mark test/js/web/fetch/fetch-gzip.test.ts # 2 of 80 builds; parallel batch; BUN_FEATURE_FLAG_NO_LIBDEFLATE=0: expect(received).toEqual(expected) (in the parallel ... +test/js/web/fetch/fetch-http3-adversarial.test.ts # h3 cases in the parallel batch: HTTP3HandshakeFailed (builds 92885, 108460, 109304, 109337, 110280); passes alone test/js/web/fetch/fetch-http3-client.test.ts # 3 of 80 builds; mac test/js/web/fetch/fetch-http3-cold-post.test.ts # 1 of 80 builds; large first request on a cold connection does not strand the TLS Finished: expect(rece... test/js/web/fetch/fetch-leak.test.ts # 35 of 80 builds; should not leak using readable stream: RSS sample 45.6 MB under the 47.2 MB floor; Requ...