[release/6.0] [QUIC] Fixed exception type for ConnectionShutdownInitiatedByTransport #60244
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Backport of #60181 to release/6.0
Fixes #60133
In case of a shutdown by a transport we would throw
QuicOperationAbortedException
out ofAcceptStreamAsync
, which would wrongly imply that it was our side who initiated the connection shutdown.This is a quick safe fix to make the logic throw
QuicConnectionAbortedException
instead./cc @ManickaP
Customer Impact
Kestrel runs into retry loop in all HTTP/3 end-to-end scenarios with browsers. As a result, it will consume lots of CPU and request response time increases -- basically DoS.
Testing
Manually confirmed it fixes the issue.
Fix also confirmed by the Kestrel team cc @sebastienros
Risk
Very low, S.N.Quic is isolated to HTTP/3 scenarios only. Fix changes only type of the exception thrown, not when and why.
cc: @JamesNK @adityamandaleeka @karelz