summerwind / h2spec

A conformance testing tool for HTTP/2 implementation.
MIT License
665 stars 75 forks source link

stream errors #125

Closed kazu-yamamoto closed 1 year ago

kazu-yamamoto commented 2 years ago

Sec 5.4.1 of RFC 9113 says:

In particular, an endpoint MAY choose to treat a stream error as a connection error.

But h2spec expects PING only for the three test cases for stream errors:

Failures: 

Generic tests for HTTP/2 server
  2. Streams and Multiplexing
    using source address 127.0.0.1:61348
    × 4: Sends a RST_STREAM frame on half-closed (remote) stream
      -> The endpoint MUST accept RST_STREAM frame.
         Expected: PING Frame (length:8, flags:0x01, stream_id:0, opaque_data:)
           Actual: Connection closed

  3. Frame Definitions
    3.4. RST_STREAM
      using source address 127.0.0.1:61361
      × 1: Sends a RST_STREAM frame
        -> The endpoint MUST accept RST_STREAM frame.
           Expected: PING Frame (length:8, flags:0x01, stream_id:0, opaque_data:)
             Actual: Connection closed

Hypertext Transfer Protocol Version 2 (HTTP/2)
  7. Error Codes
    using source address 127.0.0.1:61467
    × 2: Sends a RST_STREAM frame with unknown error code
      -> The endpoint MUST NOT trigger any special behavior.
         Expected: PING Frame (length:8, flags:0x01, stream_id:0, opaque_data:)
           Actual: Connection closed

I think GOAWAY is also allowed.

summerwind commented 2 years ago

Thank you for the report! I believe that this was fixed in 3dd93987.

kazu-yamamoto commented 2 years ago

Yes. Fixed. Thanks!

KingMob commented 1 year ago

Maybe this issue should be closed?

kazu-yamamoto commented 1 year ago

Yes!