This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author iritkatriel
Recipients Mark.Shannon, chris.jerdonek, corona10, iritkatriel, lukasz.langa, miss-islington, pablogsal, vstinner
Date 2021-08-17.16:07:56
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1629216476.23.0.792886962031.issue44895@roundup.psfhosted.org>
In-reply-to
Content
I'm pretty sure the frame locals is involved. 

This leaks (note that a is being re-raised, not b):

---------------------
def test_no_hang_on_context_chain_cycle2():
    class A(Exception): pass
    class B(Exception): pass

    try:
        try:
            raise A()
        except A as _a:
            a = _a
            try:
                raise B() 
            except B as _b:
                b = _b
        raise a 
    except A: 
        pass
---------------------

But this doesn't leak:

---------------------
def test_no_hang_on_context_chain_cycle2():
    class A(Exception): pass
    class B(Exception): pass

    try:
        try:
            raise A()
        except A as _a:
            a = _a
            try:
                raise B() 
            except B as _b:
                pass # b = _b  <== not saving b in a local
        raise a 
    except A: 
        pass
---------------------
History
Date User Action Args
2021-08-17 16:07:56iritkatrielsetrecipients: + iritkatriel, vstinner, chris.jerdonek, lukasz.langa, Mark.Shannon, corona10, pablogsal, miss-islington
2021-08-17 16:07:56iritkatrielsetmessageid: <1629216476.23.0.792886962031.issue44895@roundup.psfhosted.org>
2021-08-17 16:07:56iritkatriellinkissue44895 messages
2021-08-17 16:07:56iritkatrielcreate