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-rc1] Make DacValidateMD and DacValidateMethodTable more resilient #90797

Merged
merged 1 commit into from
Aug 18, 2023

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Aug 18, 2023

Backport of #90794 to release/8.0-rc1

/cc @janvorli

Customer Impact

BenchmarkDotnet benchmarks with DisassemblyDiagnoser 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, 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.

Make both methods more resilient to the case of invalid MethodDesc
and MethodTable with value -1.

Close #90691
@ghost
Copy link

ghost commented Aug 18, 2023

Tagging subscribers to this area: @tommcdon
See info in area-owners.md if you want to be subscribed.

Issue Details

Backport of #90794 to release/8.0-rc1

/cc @janvorli

Customer Impact

Testing

Risk

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.

Author: github-actions[bot]
Assignees: -
Labels:

area-Diagnostics-coreclr

Milestone: -

@carlossanlop
Copy link
Member

@janvorli please fill out the template and send an email to Tactics requesting approval. Today's the last day for rc1 backports.
Cc @jeffschwMSFT

@janvorli janvorli self-assigned this Aug 18, 2023
@janvorli janvorli added this to the 8.0.0 milestone Aug 18, 2023
@carlossanlop carlossanlop added the Servicing-consider Issue for next servicing release review label Aug 18, 2023
@jeffschwMSFT
Copy link
Member

@janvorli how common is this? Would RC2 be sufficient? As Carlos points out we are right at the end of taking RC1 fixes.

Copy link
Member

@jeffschwMSFT jeffschwMSFT left a 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

@jeffschwMSFT jeffschwMSFT added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Aug 18, 2023
@carlossanlop
Copy link
Member

CI failure unrelated, a remote process in a test failed. Merging now.

@carlossanlop carlossanlop merged commit 52f3d10 into release/8.0-rc1 Aug 18, 2023
107 of 113 checks passed
@carlossanlop carlossanlop deleted the backport/pr-90794-to-release/8.0-rc1 branch August 18, 2023 18:11
@ghost ghost locked as resolved and limited conversation to collaborators Sep 17, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants