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

[release/6.0] HTTP/3: Abort connection on unexpected exception from AcceptStream #37461

Merged
merged 1 commit into from
Oct 11, 2021

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Oct 11, 2021

Backport of #37432 to release/6.0

/cc @JamesNK

Customer Impact

An unexpected HTTP/3 connection error could put Kestrel into a retry loop. HTTP/3 connections will stay open forever, throwing errors and consuming CPU. An example of an unexpected error is being fixed in runtime dotnet/runtime#60244.

This PR adds an additional safeguard to Kestrel so that a connection will be aborted if there is an unexpected error. This ensures the connection immediately exits instead of going into a retry loop.

Testing

Manual testing. Confirmed that a HTTP/3 connection is aborted when there is an unexpected exception.

image

Risk

Low. The new logic is only for HTTP/3, and is only executed when there is an HTTP/3 connection error.

@ghost ghost added the area-runtime label Oct 11, 2021
@JamesNK JamesNK added the Servicing-consider Shiproom approval is required for the issue label Oct 11, 2021
@ghost
Copy link

ghost commented Oct 11, 2021

Hi @github-actions[bot]. Please make sure you've updated the PR description to use the Shiproom Template. Also, make sure this PR is not marked as a draft and is ready-to-merge.

To learn more about how to prepare a servicing PR click here.

@JamesNK JamesNK added this to the 6.0.0 milestone Oct 11, 2021
@adityamandaleeka adityamandaleeka added the Servicing-approved Shiproom has approved the issue label Oct 11, 2021
@ghost ghost removed the Servicing-consider Shiproom approval is required for the issue label Oct 11, 2021
@adityamandaleeka
Copy link
Member

@dougbu This has tactics approval.

@dougbu
Copy link
Member

dougbu commented Oct 11, 2021

@dougbu This has tactics approval.

Even better, it's "righteous"😃

@dougbu dougbu merged commit ef2d247 into release/6.0 Oct 11, 2021
@dougbu dougbu deleted the backport/pr-37432-to-release/6.0 branch October 11, 2021 23:08
@amcasey amcasey added area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions and removed area-runtime labels Jun 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions Servicing-approved Shiproom has approved the issue
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants