From 480cba8b496bcb34eb5567a197ea96dd1db03860 Mon Sep 17 00:00:00 2001 From: Edmond <1571649+edmonddantes@users.noreply.github.com> Date: Mon, 1 Jun 2026 11:51:36 +0000 Subject: [PATCH 1/3] true-async-server: subscribe baseline-h3 + static-h3 profiles MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The server gained a working HTTP/3 listener (35 phpt green, incl. E2E GET/ POST/streaming/static over QUIC). entry.php already binds the H3 UDP listener on :8443 by default; it just wasn't being benchmarked because meta.json subscribed to no h3 profile. Subscribe baseline-h3 + static-h3 so the arena actually exercises HTTP/3. A 120-iteration back-to-back restart repro (16 and 64 workers) showed 0 startup failures with the H3 listener on, so no per-profile gating is needed — h2 (TCP :8443) and h3 (QUIC UDP :8443) coexist as designed. --- frameworks/true-async-server/meta.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/frameworks/true-async-server/meta.json b/frameworks/true-async-server/meta.json index e9682411b..02b91a67e 100644 --- a/frameworks/true-async-server/meta.json +++ b/frameworks/true-async-server/meta.json @@ -22,6 +22,8 @@ "baseline-h2", "baseline-h2c", "json-h2c", + "baseline-h3", + "static-h3", "async-db", "fortunes" ] From 62876c997b617392e57d6d2ff41e29ca308eb7a2 Mon Sep 17 00:00:00 2001 From: Edmond <1571649+edmonddantes@users.noreply.github.com> Date: Mon, 1 Jun 2026 13:04:40 +0000 Subject: [PATCH 2/3] true-async-server: bump base image to v0.7.0-rc.3 (HTTP/3 enabled) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pin to trueasync/php-true-async:0.7.0-rc.3-php8.6 — the first published image carrying server v0.7.0, which ships the HTTP/3 / QUIC listener (ngtcp2 1.22.1 + nghttp3 1.15.0). Pairs with subscribing baseline-h3 + static-h3 so the arena actually exercises HTTP/3. Also document the QUIC UDP port (8443/udp) in EXPOSE. --- frameworks/true-async-server/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frameworks/true-async-server/Dockerfile b/frameworks/true-async-server/Dockerfile index fc4c25f71..00cce7169 100644 --- a/frameworks/true-async-server/Dockerfile +++ b/frameworks/true-async-server/Dockerfile @@ -1,4 +1,4 @@ -FROM trueasync/php-true-async:0.7.0-beta.3-php8.6 +FROM trueasync/php-true-async:0.7.0-rc.3-php8.6 RUN printf '%s\n' \ 'opcache.jit=1255' \ @@ -13,6 +13,6 @@ RUN printf '%s\n' \ WORKDIR /app COPY entry.php PostgreSQL.php SQLite.php /app/ -EXPOSE 8080 8443 +EXPOSE 8080 8443 8443/udp CMD ["php", "/app/entry.php"] From 84f2c21f2787d987a0cb4318ccf7fb893972ac92 Mon Sep 17 00:00:00 2001 From: Edmond <1571649+edmonddantes@users.noreply.github.com> Date: Mon, 1 Jun 2026 18:26:35 +0000 Subject: [PATCH 3/3] true-async-server: bump base image to v0.7.0-rc.4 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit rc.4 = rc.3 + patched libuv (true-async/libuv: skip redundant EPOLL_CTL_MOD, one io_uring_enter/request saved on keep-alive) and server v0.7.1 (HTTP/3 bidi stream-credit replenish, #79) — lifts the per-connection 100-request cap that crushed baseline-h3/static-h3. --- frameworks/true-async-server/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frameworks/true-async-server/Dockerfile b/frameworks/true-async-server/Dockerfile index 00cce7169..2a7050011 100644 --- a/frameworks/true-async-server/Dockerfile +++ b/frameworks/true-async-server/Dockerfile @@ -1,4 +1,4 @@ -FROM trueasync/php-true-async:0.7.0-rc.3-php8.6 +FROM trueasync/php-true-async:0.7.0-rc.4-php8.6 RUN printf '%s\n' \ 'opcache.jit=1255' \