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

Check for sentinel value when setting HTTP/3 error code #57976

Merged
merged 1 commit into from
Sep 20, 2024

Conversation

amcasey
Copy link
Member

@amcasey amcasey commented Sep 19, 2024

Check for sentinel value when setting HTTP/3 error code

Detect when IProtocolErrorFeature.Error is unset and apply a default value.

Description

If no error code has been set, IProtocolErrorFeature.Error will be -1. If we pass that through verbatim, it will be caught by validation in the setter (ironically, of the same property on the same feature object), resulting in an exception and a Critical (but apparently benign) log message.

Backport of #57934 (for #57933)

Customer Impact

When a connection times out, there's a critical log message. We're also not convinced the connection is properly cleaned up.

Subsequent requests should be unaffected.

HTTP/3 only.

Regression?

  • Yes
  • No

Regressed since 8.0 in #55282.

Risk

  • High
  • Medium
  • Low

Replacing an invalid value (which will throw either in our code or in System.Net.Quic) with a valid code is a net improvement.

Verification

  • Manual (required)
  • Automated

Packaging changes reviewed?

  • Yes
  • No
  • N/A

If no error code has been set, `IProtocolErrorFeature.Error` will be `-1`.  If we pass that through verbatim, it will be caught by validation in the setter (ironically, of the same property on the same feature object), resulting in an exception and a Critical (but apparently benign) log message.

Fixes dotnet#57933
@dotnet-issue-labeler dotnet-issue-labeler bot added the area-networking Includes servers, yarp, json patch, bedrock, websockets, http client factory, and http abstractions label Sep 19, 2024
@wtgodbe wtgodbe added the Servicing-approved Shiproom has approved the issue label Sep 19, 2024
@wtgodbe
Copy link
Member

wtgodbe commented Sep 19, 2024

Approved over email

@amcasey
Copy link
Member Author

amcasey commented Sep 20, 2024

There are no more endpoints available from the endpoint mapper.

@wtgodbe wtgodbe merged commit a717e7f into dotnet:release/9.0-rc2 Sep 20, 2024
25 checks passed
@dotnet-policy-service dotnet-policy-service bot added this to the 9.0-rc2 milestone Sep 20, 2024
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.

3 participants