Skip to content

test(generators): HTTP/2 sample frames are all written on stream 0 #1156

Description

@JarryShaw

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.

Activity

  1. added
    testPull requests that add or correct tests (test: subject prefix)
    blockedDeferred pending another issue or decision; see the last comment for what unblocks it
    on Oct 6, 2026
  2. JarryShaw commented on Oct 6, 2026

    @JarryShaw
    OwnerAuthor

    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.

  3. JarryShaw commented on Oct 6, 2026

    @JarryShaw
    OwnerAuthor

    Unblocked: #1132 and #1153 have both merged. A worker is on it now.

  4. added
    wipWork in flight - a covering PR is open or an agent is actively on it
    and removed
    blockedDeferred pending another issue or decision; see the last comment for what unblocks it
    on Oct 6, 2026
  5. JarryShaw commented on Oct 6, 2026

    @JarryShaw
    OwnerAuthor

    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.

  6. removed
    wipWork in flight - a covering PR is open or an agent is actively on it
    on Oct 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    testPull requests that add or correct tests (test: subject prefix)

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions