Skip to content

Conversation

@github-actions
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
Contributor

@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 requested review from jkotas and mikem8361 August 18, 2023 14:54
@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
Contributor

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
@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.

6 participants