hyperium / h2

HTTP 2.0 client & server implementation for Rust.
MIT License
1.36k stars 272 forks source link

`h2spec 2.6.0` tests are failling against `h2` #701

Closed DDtKey closed 1 year ago

DDtKey commented 1 year ago

I tried to run the latest version of h2spec against master branch in h2 and it's failing with the following error:

Hypertext Transfer Protocol Version 2 (HTTP/2)
  3. Starting HTTP/2
    3.5. HTTP/2 Connection Preface
      using source address 127.0.0.1:62276
      × 2: Sends invalid connection preface
        -> The endpoint MUST terminate the TCP connection.
           Expected: GOAWAY Frame (Error Code: PROTOCOL_ERROR)
                     Connection closed
             Actual: Error: read tcp 127.0.0.1:62276->127.0.0.1:5928: read: connection reset by peer

See #702

hawkw commented 1 year ago

Huh, looks like we're not properly GOAWAYing the conn in this case and just immediately closing it?

DDtKey commented 1 year ago

@hawkw Well, now I don't think so, it seems related to https://github.com/summerwind/h2spec/issues/81

And the fix of h2spec was here: https://github.com/summerwind/h2spec/pull/119 (see the last comment)

So I guess it's allowed behavior. But there is no newer release of h2spec, only build from main branch probably.

Let me know WDYT, I can close the issue I guess.

hawkw commented 1 year ago

Ah, yup, it looks like our current behavior is permitted but h2spec incorrectly requires us to send a GOAWAY, based on the issue you linked.

For now, I think the best thing to do is to close this issue and wait for a new version to be released before updating h2spec.