Skip to content

Conversation

@jkotas
Copy link
Member

@jkotas jkotas commented Jul 5, 2022

The exception throwing and handling can enter wait system recursively that will lead to deadlock.

Fixes #70010

@ghost ghost assigned jkotas Jul 5, 2022
The exception throwing and handling can enter wait system recursively that will lead to deadlock.

Fixes dotnet#70010
@jkotas jkotas force-pushed the waitsystem-locks branch from b8ce3bd to d024d06 Compare July 5, 2022 06:33
@jkotas jkotas requested review from MichalStrehovsky and VSadov July 5, 2022 14:32
@jkotas
Copy link
Member Author

jkotas commented Jul 5, 2022

cc @dotnet/ilc-contrib

}
finally
{
lockHolder.Dispose();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be after clearing waitableObjects?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

waitableObjects is thread local pooled array. It should be safe to clean it outside the lock.

Copy link
Member

@VSadov VSadov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks!

@jkotas jkotas merged commit a4f2109 into dotnet:main Jul 5, 2022
@jkotas jkotas deleted the waitsystem-locks branch July 5, 2022 18:04
@ghost ghost locked as resolved and limited conversation to collaborators Aug 4, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[NativeAOT] Enable Reflection library tests in Linux-ARM64

2 participants