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

Unblock subsequent requests when an async over sync Dns call runs for too long #92863

Closed
wants to merge 9 commits into from

Conversation

antonfirsov
Copy link
Member

@antonfirsov antonfirsov commented Oct 1, 2023

This is an alternative for #92862 in case we are willing to take a more intrusive fix for #81023. It replaces the queue of Tasks with a queue (linked list) of DnsRequestWaiter : TaskCompletionSource objects which store time-stamps. This allows signaling completion to (and unblock) subsequent tasks in case we detect that a request is long-running (> 1 sec).

Fixes #81023
Fixes #92054
Fixes #92045

@antonfirsov antonfirsov marked this pull request as draft October 1, 2023 18:28
@ghost ghost assigned antonfirsov Oct 1, 2023
@ghost
Copy link

ghost commented Oct 1, 2023

Tagging subscribers to this area: @dotnet/ncl
See info in area-owners.md if you want to be subscribed.

Issue Details

This is an alternative for #92862 in case we are willing to take a more intrusive fix for #81023. It replaces the queue of Tasks with a queue (linked list) of DnsRequestWaiter : TaskCompletionSource objects which store time-stamps. This allows forwarding the queue head and signaling completion to subsequent tasks in case we detect that a request is long-running (> 1 sec).

Author: antonfirsov
Assignees: antonfirsov
Labels:

area-System.Net

Milestone: -

@ghost
Copy link

ghost commented Nov 23, 2023

Draft Pull Request was automatically closed for 30 days of inactivity. Please let us know if you'd like to reopen it.

@github-actions github-actions bot locked and limited conversation to collaborators Dec 24, 2023
This pull request was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.