-
Notifications
You must be signed in to change notification settings - Fork 5.3k
[release/6.0] Fix missing metadata for ThreadPool Event #68876
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
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. |
jeffschwMSFT
left a comment
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
EventListenerto threadpool events in .NET 6 on Windows, it may cause aNullReferenceExceptionwhen theEventListeneris disposed.Root cause: There is a missing ThreadPool event method on
NativeRuntimeEventSourcefor overlapped IO. This event was never implemented, soEventSourcenever generates the metadata for it. When theEventListenerreceives this event and tries to look up the metadata (stored in an array of structs), it encountersnullvalues unexpectedly. This causes theTaskto fail. ThisTaskis awaited in theDisposemethod 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:
EventListenerEventListenerEventListener<-- actualizes the NRE by awaiting the background task