-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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-rc1] Make DacValidateMD and DacValidateMethodTable more resilient #90797
[release/8.0-rc1] Make DacValidateMD and DacValidateMethodTable more resilient #90797
Conversation
Make both methods more resilient to the case of invalid MethodDesc and MethodTable with value -1. Close #90691
Tagging subscribers to this area: @tommcdon Issue DetailsBackport of #90794 to release/8.0-rc1 /cc @janvorli Customer ImpactTestingRiskIMPORTANT: If this backport is for a servicing release, please verify that:
|
@janvorli please fill out the template and send an email to Tactics requesting approval. Today's the last day for rc1 backports. |
@janvorli how common is this? Would RC2 be sufficient? As Carlos points out we are right at the end of taking RC1 fixes. |
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 RC1
CI failure unrelated, a remote process in a test failed. Merging now. |
Backport of #90794 to release/8.0-rc1
/cc @janvorli
Customer Impact
BenchmarkDotnet
benchmarks withDisassemblyDiagnoser
enabled can randomly crash in case the generated assembly code loads constant 0xffffffffffffffff into a register. It doesn't have to be an explicit constant in the code, it might be coming from an indirection slot. The disassembler tries to handle some of these constants as MethodDesc / MethodTable pointers in order to display class / method names instead of hex constants. The fix checks for -1 (0xffffffffffffffff) and NULL only as these are the only values that are not translated between the debuggee and debugger address spaces.Testing
BenchmarkDotnet test that was failing due to the issue.
Risk
Low, the added early out in the methods dismisses values that would otherwise cause crash.
IMPORTANT: If this backport is for a servicing release, please verify that:
The PR target branch is
release/X.0-staging
, notrelease/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.