quicwg / base-drafts

Internet-Drafts that make up the base QUIC specification
https://quicwg.org
1.63k stars 204 forks source link

What does GREASE mean for error codes? #4857

Closed vasilvv closed 3 years ago

vasilvv commented 3 years ago

We currently reserve a subset of the error code space for GREASE purposes, at least in HTTP/3. However, we give no guidance on how to use this. One possible interpretation is that peers should randomly replace their real error codes with a GREASE codepoint; however, some of the error codes we use do have special meaning (e.g. H3_REQUEST_REJECTED would normally result in the browser retrying the request) that would be lost, so that does not seem like an appropriate approach.

I think we should provide an explicit guidance to implementations or un-reserve those codepoints.

LPardue commented 3 years ago

Endpoints should use the most appropriate error code, or a general purpose one. Grease error codes can be used to close grease streams, the spec states that somewhere.

I see your point but an implementation that chooses to ignore the specification guidance on the specific error code to use can to cause issues no matter what we statebin the spec.

vasilvv commented 3 years ago

Okay, I think I did not read the spec carefully enough, it clearly says this only applies to H3_NO_ERROR.