-
Notifications
You must be signed in to change notification settings - Fork 203
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Minor inconsistency of error when MAX_STREAMS exceeds 2^60 #3781
Comments
STREAM_LIMIT_ERROR is fine. FRAME_ENCODING_ERROR is fine. We just need to be consistent in mentioning both throughout. Closes #3781.
@marten-seemann suggested that it should only be a FRAME_ENCODING_ERROR, as it's invalid to send a MAX_STREAMS larger than 2^60 under any circumstance, regardless of connection state, and I agree that's the clearest application of our principles. |
I agree that requiring the use of FRAME_ENOCDING_ERROR is fine. Even though we occasionally allow an endpoint to use multiple error codes when there is more than one way of checking the status (i.e. FLOW_CONTROL_ERROR vs. FRAME_ENCODING_ERROR for STREAM frames), the check required in this particular case is purely unrelated to the connection state. Hence my +1. |
I would be happy with a single error too. I'm not fussy about the actual code used as long as the spec is clear and consistent. That means that we'd need to reduce STREAMS_BLOCKED to one error code too, and potentially any other situation that allows either. |
I'm going to drop #3792. I agree with the comments suggesting that FRAME_ENCODING_ERROR is the right answer. Note that you might still receive a different error, as we permit endpoints that detect multiple errors to send any that it detects, and this case clearly justifies use of STREAM_LIMIT_ERROR. |
This is an error that can be detected in frame parsing without additional context. Closes #3781.
Over on cloudflare/quiche#565 we had a discussion about whether a MAX_STREAMS frame with value exceeding 2^60 generates a FRAME_ENCODING or a STREAM_LIMIT error.
Draft 29 Section 19.11 says:
but as @goelvidhi points out, Section 4.5 says
Meanwhile, for the STREAMS_BLOCKED frame in Section 19.15 we have:
I suspect both Vidhi and I are correct, bogus MAX_STREAMS can be treated as either STREAM_LIMIT or FRAME_ENCODING. If so, its probably a minor editorial fix to state either/or in both the sections.
The text was updated successfully, but these errors were encountered: