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] Fix DNS cancellation deadlock #67291

Merged
merged 9 commits into from
Apr 13, 2022

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Mar 29, 2022

Fixes #63552
Backport of #63904 to release/6.0

/cc @rzikm @antonfirsov

Customer Impact

Customer reported hang calling Dns.GetHostAddressesAsync. This is because when cancellation kicks in during DNS call, it can lead to deadlock.

Testing

Tested on locally built runtime bits from this branch and running the repro app from the original issue.

Risk

Low -- Removal of a lock which was not necessary in the first place, see original PR. Change has been in main for over 2 months.

@ghost
Copy link

ghost commented Mar 29, 2022

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

Issue Details

Backport of #63904 to release/6.0

/cc @rzikm @antonfirsov

Customer Impact

Testing

Risk

IMPORTANT: If this change touches code that ships in a NuGet package, please make certain that you have added any necessary package authoring and gotten it explicitly reviewed.

Author: github-actions[bot]
Assignees: -
Labels:

area-System.Net

Milestone: -

@rzikm rzikm requested a review from ManickaP March 29, 2022 18:15
@rzikm rzikm added the Servicing-consider Issue for next servicing release review label Mar 29, 2022
@rzikm
Copy link
Member

rzikm commented Mar 29, 2022

Windows CI failures are Helix queue windows.10.amd64.server19h1.es.open is set for estimated removal date of 2022-03-31.

@ManickaP
Copy link
Member

Windows CI failures are Helix queue windows.10.amd64.server19h1.es.open is set for estimated removal date of 2022-03-31.

@CarnaViire isn't this similar to your recent struggles with 6.0 branch?

@CarnaViire
Copy link
Member

@CarnaViire isn't this similar to your recent struggles with 6.0 branch?

Yes. The tracking issue is #67048

@danmoseley
Copy link
Member

This doesn't need packaging work, right?

@antonfirsov
Copy link
Member

This doesn't need packaging work, right?

Fortunately not, it's BCL System.Net.NameResolution.

@karelz karelz added this to the 6.0.x milestone Mar 31, 2022
@leecow leecow added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Apr 5, 2022
@leecow leecow modified the milestones: 6.0.x, 6.0.5 Apr 5, 2022
@danmoseley
Copy link
Member

This got approved for 6.0 conditional on (if possible) the original customer validating (at least on 7.0)

@MartyIX did you get a chance to try a 7.0 build to verify that it seems to fix it for you.

@MartyIX
Copy link
Contributor

MartyIX commented Apr 6, 2022

@MartyIX did you get a chance to try a 7.0 build to verify that it seems to fix it for you.

Looking at https://github.com/dotnet/runtime/releases and 7.0 preview 2 was released 22 days ago and the original bugfix being merged 16 days ago, I don't think there is a public release for me to test.

Or is there a way to download something like "the latest dotnet/runtime binary/build for Windows" without me having to compile everything?

@rzikm
Copy link
Member

rzikm commented Apr 6, 2022

You can download latest builds from https://github.com/dotnet/installer#table

@MartyIX
Copy link
Contributor

MartyIX commented Apr 6, 2022

@danmoseley So I have run a few times the repro program on .NET 6 and .NET 7 (thanks @rzikm) and it appears to be fixed in .NET 7 as it finishes as expected. I don't observe any deadlock or "unnecessary" delay.

Thank you


global.json for .NET 7 testing:

{
  "sdk": {
    "version": "7.0.0-preview.3.22175.4",
    "rollForward": "latestFeature"
  }
}

@danmoseley
Copy link
Member

Thanks for confirming @MartyIX . This will be merged next week for the May servicing release.

@carlossanlop carlossanlop merged commit d80eb8a into release/6.0 Apr 13, 2022
@jkotas jkotas deleted the backport/pr-63904-to-release/6.0 branch April 16, 2022 00:38
@ghost ghost locked as resolved and limited conversation to collaborators May 16, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-System.Net Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants