-
Notifications
You must be signed in to change notification settings - Fork 5k
[release/8.0-staging] Fix for a stress crash in ComAwareWeakReferenceNative::HasInteropInfo #94649
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] Fix for a stress crash in ComAwareWeakReferenceNative::HasInteropInfo #94649
Conversation
…yncblock is gone.
Friendly reminder: If you'd like this to be included in the December release, please merge it before Tuesday November 14th EOD (Code Complete). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
approved. we will take for consideration in 8.0.x
@AaronRobinsonMSFT @jeffschwMSFT did this end up getting Tactics approval? Today is code complete. |
@carlossanlop for January? |
No, it's code complete for December: https://dev.azure.com/devdiv/DevDiv/_wiki/wikis/DevDiv.wiki/38691/December-2023 |
I'm starting the flow from staging to internal now, so the branches are closed. This will have to wait until the January release. |
Backport of #94643 to release/8.0-staging
/cc @VSadov
Customer Impact
Fixes: #94579
The issue was reported by an external customer. In rare cases when creating a weak reference instance an application may crash with ExecutionEngineException in the runtime while probing for COM interop info.
The repro is a fairly large WinForms app (paint.net)
When run with
GCStress=2
the crash is nearly 100% certain.Testing
Regular testing.
Manually validated that the customer repro no longer causes EE crashes. That includes running it under
GCStress=2
Risk
Low. The fix is adding a missing null-check where we had an assert.
Turns out the asserted condition may not hold when racing with GC and must be handled.