private-octopus / picoquic

Minimal implementation of the QUIC protocol
MIT License
547 stars 161 forks source link

picoquic server ends connection after receiving unknown HTTP/3 stream type #1537

Closed MPK1 closed 1 year ago

MPK1 commented 1 year ago

After checking the current interop matrix, I noticed that the picoquic server does not work with the cloudflare/quiche client anymore. I was interested in the reason and after some debugging, it looks like the quiche client is "greasing" the HTTP/3 stream type with a reserved stream type (e.g. 0x303c677fab24f53d) "to exercise the requirement that unknown types be ignored" (RFC 9114 - Section 6.2.3). After turning off greasing at the quiche client with --no-grease, everything works fine. I noticed that quiche is also greasing the settings type in a SETTINGS frame inside a HTTP/3 control stream. However, the picoquic server seems to be resilient against this.

huitema commented 1 year ago

Thanks for flagging the issue. It is being fixed, see PR #1538

huitema commented 1 year ago

Verified fixed on the latest run of the interop runner.

MPK1 commented 1 year ago

Great, thank you!