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

Fix detection of exceptionally called funclet in stack walk #99958

Merged

Conversation

janvorli
Copy link
Member

There is a problem with stack walking detecting funclets called during exception handling with the new EH enabled. The code was considering any funclet it found below the topmost ExInfo, but I have not realized it can also hit non-exceptionally called finallys. Those don't have any exception handling going on and thus are incorrectly used for storing information that it used later at the parent to track GC references. We need to consider only funclets that were called exceptionally.

Close #99884

There is a problem with stack walking detecting funclets called during
exception handling with the new EH enabled. The code was considering any
funclet it found below the topmost ExInfo, but I have not realized it
can also hit non-exceptionally called finallys. Those don't have any
exception handling going on and thus are incorrectly used for storing
information that it used later at the parent to track GC references.
We need to consider only funclets that were called exceptionally.
@janvorli janvorli added this to the 9.0.0 milestone Mar 19, 2024
@janvorli janvorli requested a review from jkotas March 19, 2024 14:27
@janvorli janvorli self-assigned this Mar 19, 2024
@janvorli
Copy link
Member Author

@jkotas this was being hit only in a test executed with DOTNET_JitStress=2

@janvorli
Copy link
Member Author

/azp run runtime-coreclr gcstress0x3-gcstress0xc

@janvorli
Copy link
Member Author

/azp run runtime-coreclr outerloop

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

1 similar comment
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@janvorli
Copy link
Member Author

/azp run runtime-coreclr jitstress2-jitstressregs

Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@janvorli
Copy link
Member Author

The test failures are known (timeouts) :#99410, #99882

@janvorli janvorli merged commit 7ae6faa into dotnet:main Mar 20, 2024
161 of 180 checks passed
@janvorli janvorli deleted the fix-detecting-of-exceptionally-called-funclet-2 branch March 20, 2024 12:57
@github-actions github-actions bot locked and limited conversation to collaborators Apr 20, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Test failure: JIT/opt/InstructionCombining/ArrayLengthArithmetic/ArrayLengthArithmetic.dll
3 participants