Fix FrameDataAllocator popping in InterpreterFrame::ExceptionUnwind#122164
Merged
janvorli merged 1 commit intodotnet:mainfrom Dec 4, 2025
Merged
Fix FrameDataAllocator popping in InterpreterFrame::ExceptionUnwind#122164janvorli merged 1 commit intodotnet:mainfrom
janvorli merged 1 commit intodotnet:mainfrom
Conversation
The InterpreterFrame::ExceptionUnwind_Impl was passing a wrong topmost frame to the frameDataAllocator.PopInfo - the one read directly from the m_pTopInterpMethodContextFrame which is not always up to date. The correct way is to use the call to GetTopInterpMethodContextFrame to get it. It was leading to the following assert in some libraries tests: assert(pCurrent == pFirst && pCurrent->pFramePos == pCurrent->pFrameStart)
Contributor
|
Tagging subscribers to this area: @BrzVlad, @janvorli, @kg |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR fixes a bug in InterpreterFrame::ExceptionUnwind_Impl where it was using a stale cached frame pointer instead of getting the current topmost interpreter frame, leading to assertion failures in the frame data allocator.
Key Change:
- Changed from directly accessing
m_pTopInterpMethodContextFrameto callingGetTopInterpMethodContextFrame()to obtain the actual current topmost frame
davidwrighton
approved these changes
Dec 4, 2025
This was referenced Dec 4, 2025
Open
Member
Author
|
/ba-g the failure is #35066 and it is unrelated to this PR |
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.
The InterpreterFrame::ExceptionUnwind_Impl was passing a wrong topmost frame to the frameDataAllocator.PopInfo - the one read directly from the m_pTopInterpMethodContextFrame which is not always up to date. The correct way is to use the call to GetTopInterpMethodContextFrame to get it.
It was leading to the following assert in some libraries tests: assert(pCurrent == pFirst && pCurrent->pFramePos == pCurrent->pFrameStart)