Skip to content
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

Make SERVER_BUSY more generic #3709

Closed
martinthomson opened this issue Jun 1, 2020 · 6 comments
Closed

Make SERVER_BUSY more generic #3709

martinthomson opened this issue Jun 1, 2020 · 6 comments
Labels
-transport design An issue that affects the design of the protocol; resolution requires consensus. has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list.

Comments

@martinthomson
Copy link
Member

This is spawned from #3690 and #3704.

The discussion there revealed that SERVER_BUSY has implied semantics that aren't helpful and it would be better to have a more generic message instead.

This tracks that. The resolution might be #3704, depending on how we resolve this.

@martinthomson martinthomson linked a pull request Jun 1, 2020 that will close this issue
@LPardue LPardue added the design An issue that affects the design of the protocol; resolution requires consensus. label Jun 1, 2020
@martinthomson
Copy link
Member Author

My personal preference is to not merge #3704. A generic error code is more useful.

There is a small loss here in that a server has to use a non-intuitive code for the case that it finds it can't continue with a connection due to load, but I am comfortable with that.

@MikeBishop
Copy link
Contributor

#3694 was already merged, and there's some question about whether it was actually editorial. This issue tracks the question retroactively. The proposal here is to leave #3694 merged / close #3704. The alternative is to merge #3704, reverting the other PR.

@janaiyengar
Copy link
Contributor

I prefer the generic message, so I would like to see the current state of affairs retained. That is,

If there is a need for other more specific error codes, we can deal with that separately.

@martinthomson martinthomson added the proposal-ready An issue which has a proposal that is believed to be ready for a consensus call. label Jun 1, 2020
@mjoras
Copy link

mjoras commented Jun 2, 2020

+1 to leaving the current state. CONNECTION_REFUSED is generic enough to be useful in the situation @marten-seemann described, and while it's nice to have more specific error codes, I don't think there's an abundant need for a BUSY-like signal, without also getting into the business of prescribing things like time-based retry for QUIC clients.

@kazuho
Copy link
Member

kazuho commented Jun 2, 2020

+1 to retaining the current state.

I'm repeating my comment on #3694, but when QUIC is used as the only transport protocol (rather than with happy-eyeballing), it has to be resilient to MITM attacks as TLS over TCP is.

TLS over TCP does not have an unauthenticated error code that tells the client to stop trying to connecting to the server. We cannot have such thing in QUIC, because if we do, QUIC becomes more prone to MITM attacker than TLS over TCP is.

CONNECTION_REFUSED is fine in this respect, because it does not indicate to the client what the reason was. But error codes like SERVER_BUSY or TRY_LATER would have the implications that we cannot have.

@LPardue LPardue added call-issued An issue that the Chairs have issued a Consensus call for. and removed proposal-ready An issue which has a proposal that is believed to be ready for a consensus call. labels Jun 2, 2020
@LPardue LPardue added has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list. and removed call-issued An issue that the Chairs have issued a Consensus call for. labels Jun 7, 2020
@martinthomson
Copy link
Member Author

Closing as proposed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-transport design An issue that affects the design of the protocol; resolution requires consensus. has-consensus An issue that the Chairs have determined has consensus, by canvassing the mailing list.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants