don't store exceptionfor identity check#2004
Draft
maxbachmann wants to merge 2 commits intomicrosoft:mainfrom
Draft
don't store exceptionfor identity check#2004maxbachmann wants to merge 2 commits intomicrosoft:mainfrom
maxbachmann wants to merge 2 commits intomicrosoft:mainfrom
Conversation
maxbachmann
commented
Mar 5, 2026
src/debugpy/_vendored/pydevd/_pydevd_sys_monitoring/_pydevd_sys_monitoring.py
Outdated
Show resolved
Hide resolved
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
I did look a bit deeper into #1999 and the state was kept alive by State -> Generator -> Frame -> GeneratorExit Exception
Debugpy stores the current exception during unwind for an identity check and only unsets it on the next unwind.
This PR changes this to only store the id which fixes the issue. However to avoid issues on id reuse, this id has to be unset again when a new exception is raised on the thread. This requires having to always listen to
monitor.events.RAISE.@rchiodo do you have a better idea on how we can only hold the exception while required?
I didn't update the generated cython file since I didn't directly know how to do this + this is more of a draft on how this could be solved for now