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 | ngtcp2/1.11.0 | Pass | Recovered and completed the follow-up request. |
| quinn | noq fork | Pass | Recovered and completed the follow-up request. |
| aioquic | 1.3.0 | Pass | Recovered and completed the follow-up request. |
| chromium | build 1223 | Pass | Recovered and completed the follow-up request. |
| quic-go | quic-go v0.61.0 | Pass | Recovered and completed the follow-up request. |
| quiche | 0.30.0 | Pass | Recovered and completed the follow-up request. |
| neqo | 0.31.1 | Pass | Recovered and completed the follow-up request. |
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")'
What this suite is · The full grid · All clients · All tests · Findings