-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
QUIC: SHUTDOWN_INITIATED_BY_TRANSPORT on connection should not result in QuicOperationAbortedException #55157
Comments
Tagging subscribers to this area: @dotnet/ncl Issue DetailsSHUTDOWN_INITIATED_BY_TRANSPORT can indicate a variety of different errors, including stateless reset or a QUIC protocol error. It's determined locally by MsQuic (hence the name). Currently, if we receive SHUTDOWN_INITIATED_BY_TRANSPORT from MsQuic, we generate a QuicOperationAbortedException for any attempted operations on the connection (e.g. AcceptStreamAsync). This seems like the wrong exception. QuicOperationAbortedException is intended to mean that the local user closed the connection, and thus the outstanding operation was aborted as a result. We could use QuicConnectionAbortedException here, except that this requires an error code, and is intended for cases where the peer explicitly closed the connection, so it doesn't seem ideal. We probably need a new exception type for this. And we may want to distinguish different error cases within this.
|
can we reliably detect the reason? |
The event does give you a status code. It might not always clearly differentiate all possible reasons, but if you ever need more, we can add more specific status codes. |
Triage: QUIC does not have direct users. Unless ASP.NET needs this, it is not critical for 6.0. Moving to 7.0 for now. |
Triage: This should be fixed - @ManickaP can you please verify (for extra points :)) |
This has been partially fixed for 6.0 (and main as well) in #60181, i.e. it's a hack solution to cause a minimal churn. |
Triage: @rzikm drives exception design, should be part of that. |
Duplicate of #70669 |
SHUTDOWN_INITIATED_BY_TRANSPORT can indicate a variety of different errors, including stateless reset or a QUIC protocol error. It's determined locally by MsQuic (hence the name).
Currently, if we receive SHUTDOWN_INITIATED_BY_TRANSPORT from MsQuic, we generate a QuicOperationAbortedException for any attempted operations on the connection (e.g. AcceptStreamAsync).
This seems like the wrong exception. QuicOperationAbortedException is intended to mean that the local user closed the connection, and thus the outstanding operation was aborted as a result.
We could use QuicConnectionAbortedException here, except that this requires an error code, and is intended for cases where the peer explicitly closed the connection, so it doesn't seem ideal.
We probably need a new exception type for this. And we may want to distinguish different error cases within this.
The text was updated successfully, but these errors were encountered: