-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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/6.0] Fix missing metadata for ThreadPool Event #68876
[release/6.0] Fix missing metadata for ThreadPool Event #68876
Conversation
Tagging subscribers to this area: @mangod9 Issue Detailsfixes #65630 Minimal version of #67150 Customer ImpactIf a user subscribes an Root cause: There is a missing ThreadPool event method on See #65630 for more details TestingThis patch includes a test and is currently passing in main. RiskLow risk.
|
/azp run runtime |
Azure Pipelines successfully started running 1 pipeline(s). |
@josalem this is still marked as draft. Please add the |
I was hoping to sort out the CI failures first, but none seem related to the changes. I'll flip the switch first and triage the failures while it's reviewed. |
Triaging CI issues:
|
@carlossanlop I will take care of adding servicing-consider label for runtime team PRs. |
I will add servicing-consider label once it receives code review. |
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. Can you highlight that this issue was customer reported and that we had a test hole (now filled)? We will take for consideration in 6.0.x
fixes #65630
Minimal version of #67150
Customer Impact
This is a customer-reported issue.
If a user subscribes an
EventListener
to threadpool events in .NET 6 on Windows, it may cause aNullReferenceException
when theEventListener
is disposed.Root cause: There is a missing ThreadPool event method on
NativeRuntimeEventSource
for overlapped IO. This event was never implemented, soEventSource
never generates the metadata for it. When theEventListener
receives this event and tries to look up the metadata (stored in an array of structs), it encountersnull
values unexpectedly. This causes theTask
to fail. ThisTask
is awaited in theDispose
method and renders the exception then.See #65630 for more details
Testing
This patch includes a test and is currently passing in main. This test covers this issue as well as the overall functionality of
NativeRuntimeEventSource
.Risk
Low risk.
In order to actualize the NRE from the issue, a user must do the following:
EventListener
EventListener
EventListener
<-- actualizes the NRE by awaiting the background task