Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Fix concurrency in MultipleWaitingClients_ServerServesOneAtATime test#25004

Merged
stephentoub merged 1 commit into
dotnet:masterfrom
stephentoub:fix_np_test
Nov 2, 2017
Merged

Fix concurrency in MultipleWaitingClients_ServerServesOneAtATime test#25004
stephentoub merged 1 commit into
dotnet:masterfrom
stephentoub:fix_np_test

Conversation

@stephentoub
Copy link
Copy Markdown
Member

The Unix implementation works by having clients connect to the server socket, and connects are satisifed not when an accept happens but when there's room in the listen backlog. Thus multiple clients might end up having their connects immediately satisfied, and we might try to then read/write the wrong client, and end up deadlocking.

Fixes https://github.com/dotnet/corefx/issues/24994

@danmoseley danmoseley requested a review from pjanotti November 1, 2017 22:16
The Unix implementation works by having clients connect to the server socket, and connects are satisifed not when an accept happens but when there's room in the listen backlog.  Thus multiple clients might end up having their connects immediately satisfied, and we might try to then read/write the wrong client, and end up deadlocking.
@stephentoub
Copy link
Copy Markdown
Member Author

@dotnet/dnceng, is there still (or again) an issue with macOS? The leg is showing:
https://ci3.dot.net/job/dotnet_corefx/job/master/job/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/4975/

All nodes of label ‘osx-10.12||OSX.1012.Amd64.Open’ are offline

I see the same thing on other PRs, e.g. https://ci3.dot.net/job/dotnet_corefx/job/master/job/osx-TGroup_netcoreapp+CGroup_Debug+AGroup_x64+TestOuter_false_prtest/4980/

@stephentoub
Copy link
Copy Markdown
Member Author

Merging to avoid failures happening in other PRs

@stephentoub stephentoub merged commit 9495387 into dotnet:master Nov 2, 2017
@stephentoub stephentoub deleted the fix_np_test branch November 2, 2017 03:43
@karelz karelz added this to the 2.1.0 milestone Nov 18, 2017
picenka21 pushed a commit to picenka21/runtime that referenced this pull request Feb 18, 2022
…dotnet/corefx#25004)

The Unix implementation works by having clients connect to the server socket, and connects are satisifed not when an accept happens but when there's room in the listen backlog.  Thus multiple clients might end up having their connects immediately satisfied, and we might try to then read/write the wrong client, and end up deadlocking.

Commit migrated from dotnet/corefx@9495387
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants