Fix edge case in stack overflow handling - #85272
Merged
Merged
Conversation
There is a problematic case when the stack overflow happens in native code and there is an explicit frame between the managed and native code. Some time ago, I have added a fix for a problem when the stack overflow happened in native code, but I haven't found that it actually works only in case there is no explicit frame between the managed code and the failing native code frame. That fix makes the `FaultingExceptionFrame` that is created for the stack overflow to contain context of the managed code frame, so the stack walker uses that to move to the next frame. But while doing so, it hits the other explicit frame that it doesn't expect there and fires an assert. This fix handles the problematic case correctly.
Member
Author
|
cc: @JulieLeeMSFT |
jkotas
approved these changes
Apr 24, 2023
This was referenced Apr 25, 2023
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
There is a problematic case when the stack overflow happens in native code and there is an explicit frame between the managed and native code. Some time ago, I have added a fix for a problem when the stack overflow happened in native code, but I haven't found that it actually works only in case there is no explicit frame between the managed code and the failing native code frame. That fix makes the
FaultingExceptionFramethat is created for the stack overflow to contain context of the managed code frame, so the stack walker uses that to move to the next frame. But while doing so, it hits the other explicit frame that it doesn't expect there and fires an assert.This fix handles the problematic case correctly.
Close #81360