h-goaway
· RFC 9114 §5.2 · resilience · layer http3 · udp/4485 · SHOULD
Passing this means: Recovered rather than giving up.
Anomaly type: control_stream
How each client answered
| Client | Version | Verdict | What happened |
|---|---|---|---|
| curl | libcurl/8.23.0 ngtcp2/1.25.0 | Pass | Recovered and completed the follow-up request. The client process had already exited 1104ms in, before this test's reaction point at never observed, so the silence after that is not evidence either way. |
| quinn | noq fork (189b0ed) | Pass | Recovered and completed the follow-up request. The client process had already exited 1152ms in, before this test's reaction point at never observed, so the silence after that is not evidence either way. |
| aioquic | 1.3.0 (PyPI wheel) | Pass | Recovered and completed the follow-up request. The client process had already exited 1403ms in, before this test's reaction point at never observed, so the silence after that is not evidence either way. |
| chromium | build 1248 | Pass | Recovered and completed the follow-up request. The client process had already exited 1704ms in, before this test's reaction point at never observed, so the silence after that is not evidence either way. |
| quic-go | quic-go v0.61.0 (h1:9So2anK4Tp22) | Pass | Recovered and completed the follow-up request. The client process had already exited 3056ms in, before this test's reaction point at never observed, so the silence after that is not evidence either way. |
| quiche | 0.30.0 (1c8e976) | Pass | Recovered and completed the follow-up request. The client process had already exited 1052ms in, before this test's reaction point at never observed, so the silence after that is not evidence either way. |
| neqo | 0.31.1 (cac2b74) | Pass | Recovered and completed the follow-up request. The client process had already exited 1052ms in, before this test's reaction point at never observed, so the silence after that is not evidence either way. |
| picoquic | 8162550 | Pass | Recovered and completed the follow-up request. The client process had already exited 1052ms in, before this test's reaction point at never observed, so the silence after that is not evidence either way. |
| ngtcp2 | 3c23148 | Pass | Recovered and completed the follow-up request. The client process had already exited 13482ms in, before this test's reaction point at never observed, so the silence after that is not evidence either way. |
| lsquic | 4.9.4 (2b30189) | Pass | Recovered and completed the follow-up request. The client process had already exited 1052ms in, before this test's reaction point at never observed, so the silence after that is not evidence either way. |
| xquic | 2060a44 | Pass | Recovered and completed the follow-up request. The client process had already exited 1252ms in, before this test's reaction point at never observed, so the silence after that is not evidence either way. |
| msquic | 2.7.0 (7e6525d) | Pass | Recovered and completed the follow-up request. The client process had already exited 1302ms in, before this test's reaction point at never observed, so the silence after that is not evidence either way. |
| quico | 0.7.0 (npm) | Pass | Recovered and completed the follow-up request. The client process had already exited 4359ms in, before this test's reaction point at never observed, so the silence after that is not evidence either way. |
What the clause requires
Stop opening requests, finish those in flight, and retry idempotent ones elsewhere. The GOAWAY is written once the client's request is running and names the stream after it, so §5.2 puts that request inside the range the server promises to process: finishing it is the behaviour under test. Sent before the request instead, the correct answer would be to close and reconnect, and the test would be measuring a race rather than recovery.
Judged against RFC 9114.
Run this one yourself
Every test is reachable from your own client. Nothing here needs an account.
curl -s https://conformance.pqcrypta.com/catalog.json \
| jq '.tests[] | select(.id == "h-goaway")'