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

Extend Dictionary concurrent access detection to Remove() #26336

Closed
danmoseley opened this issue May 31, 2018 · 0 comments · Fixed by dotnet/coreclr#18524
Closed

Extend Dictionary concurrent access detection to Remove() #26336

danmoseley opened this issue May 31, 2018 · 0 comments · Fixed by dotnet/coreclr#18524
Labels
area-System.Collections bug Hackathon Issues picked for Hackathon help wanted [up-for-grabs] Good issue for external contributors
Milestone

Comments

@danmoseley
Copy link
Member

#20569 added a change to turn hangs in Dictionary (caused by illegal concurrent access) into crashes, which are more useful.

It looks we missing the same protection in the 2 Remove() overloads. It contains code like

                while (i >= 0)
                {
                    ref Entry entry = ref entries[i];
...
                    i = entry.next;
                }

The hangs we have seen were all loops in the entries chain - such a loop could cause the above code to hang also so we should probably apply the same change to this.

@msftgits msftgits transferred this issue from dotnet/corefx Jan 31, 2020
@msftgits msftgits added this to the 3.0 milestone Jan 31, 2020
@ghost ghost locked as resolved and limited conversation to collaborators Dec 16, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-System.Collections bug Hackathon Issues picked for Hackathon help wanted [up-for-grabs] Good issue for external contributors
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants