You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
test(generators): HTTP/2 sample frames are all written on stream 0 #1156
Describe the bug examples/generators/options.py_httpv2_build writes every HTTP/2 frame on stream 0. That puts illegal stream-0 DATA, HEADERS and similar frames in options-transport.pcap. Once #1153 lands, those frames decode as Raw over TCP/80. test_option_coverage_runtime checks only the Ethernet:IPv4 prefix, so it does not notice.
Expected behavior
Each frame uses a stream ID that is legal for its type (RFC 9113 §6).
Blocked until #1132 and #1153 merge. #1132 edits options.py.
Also from the #1153 review: _httpv2_build still writes the HTTP/2 Length counting the 9-octet header, for example 000009000000000000. Since #1138, the parser rejects that, so options-transport.pcap frames 35–43 decode as Raw on main regardless of #1153. Fix the Length convention here as well as the stream IDs.
Correction to my earlier comment here: the generator's HTTP/2 Length field was already payload-only on 2c7a97c84, because #1138 fixed HTTP.make, so it was not the cause.
The real cause is that _httpv2_build puts every frame on stream 0 (examples/generators/options.py:1129-1130). Since #1153, _test_http2_frame rejects stream 0 for DATA, HEADERS, PRIORITY, RST_STREAM, PUSH_PROMISE and CONTINUATION frames. The fix is in #1161.
Activity
JarryShaw commentedon Oct 6, 2026
Also from the #1153 review:
_httpv2_buildstill writes the HTTP/2 Length counting the 9-octet header, for example000009000000000000. Since #1138, the parser rejects that, sooptions-transport.pcapframes 35–43 decode as Raw onmainregardless of #1153. Fix the Length convention here as well as the stream IDs.JarryShaw commentedon Oct 6, 2026
Unblocked: #1132 and #1153 have both merged. A worker is on it now.
JarryShaw commentedon Oct 6, 2026
Correction to my earlier comment here: the generator's HTTP/2 Length field was already payload-only on
2c7a97c84, because #1138 fixedHTTP.make, so it was not the cause.The real cause is that
_httpv2_buildputs every frame on stream 0 (examples/generators/options.py:1129-1130). Since #1153,_test_http2_framerejects stream 0 for DATA, HEADERS, PRIORITY, RST_STREAM, PUSH_PROMISE and CONTINUATION frames. The fix is in #1161.