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/8.0-staging] [mono] Fix class initialization spurious wakeups #96905

Merged

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Jan 12, 2024

Backport of #96903 to release/8.0-staging

/cc @lambdageek

Customer Impact

Customers running multi-threaded code on mobile platforms may experience crashes at startup or during class initialization. In particular if multiple threads try to call the static constructor for the same type at the same time, the runtime may assert.

Related to #96872 and #96804

This is a regression in .NET SDK 8.0.1 due to #93943

Testing

Manual testing.

Risk

Low.

IMPORTANT: If this backport is for a servicing release, please verify that:

  • The PR target branch is release/X.0-staging, not release/X.0.

  • If the change touches code that ships in a NuGet package, you have added the necessary package authoring and gotten it explicitly reviewed.

the condition variable may be signaled even if the initialization by
the other thread is not done yet.  Handle spurious wakeups the same
way as timeouts: go around once more from the beginning.

Fixes #96872
if we goto retry_top, don't set up a new handle frame that lacks a
matching HANDLE_FUNCTION_RETURN_VAL.

Instead setup the handle frame once upfront
@lambdageek lambdageek added this to the 8.0.x milestone Jan 12, 2024
@lambdageek lambdageek added the Servicing-consider Issue for next servicing release review label Jan 12, 2024
@lambdageek
Copy link
Member

@thaystg could you review this one too

@carlossanlop
Copy link
Member

@lambdageek @thaystg - Friendly reminder that Tuesday January 16th 4pm is the Code Complete deadline for the February Release. If all requirements are met, please merge your PR before that date and time to ensure this fix gets included in that Release.

@lambdageek lambdageek added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Jan 13, 2024
@lambdageek
Copy link
Member

Approved by tactics in email

@lambdageek lambdageek merged commit fe8a9d0 into release/8.0-staging Jan 13, 2024
108 of 112 checks passed
@akoeplinger akoeplinger modified the milestones: 8.0.x, 8.0.2 Jan 14, 2024
@akoeplinger akoeplinger deleted the backport/pr-96903-to-release/8.0-staging branch January 14, 2024 11:24
@github-actions github-actions bot locked and limited conversation to collaborators Feb 14, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-VM-meta-mono Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants