-
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
Fix Http2 deadlock #99889
Fix Http2 deadlock #99889
Conversation
Tagging subscribers to this area: @dotnet/ncl |
/azp run runtime-libraries-coreclr outerloop |
Azure Pipelines successfully started running 1 pipeline(s). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
/backport to release/8.0-staging |
Started backporting to release/8.0-staging: https://github.com/dotnet/runtime/actions/runs/8378465640 |
Fixes #98945
The product change is just dropping the
lock
onHttp2Connection.GetIdleTicks
that's called by the connection pool while holding the pool lock. The lock isn't actually needed here as the race condition exists even with the lock, and should be harmless either way.Also added a bunch more asserts to make introducing similar issues in the future a bit harder.
Tested on a repro project with artificial delays inside
System.Net.Http
.We should consider backporting this one to 8.0.