[issue23353] generator bug with exception: tstate->exc_value is not cleared after an except block
STINNER Victor
report at bugs.python.org
Sat Jan 31 02:10:21 CET 2015
STINNER Victor added the comment:
Oh, by the way: keeping the exception after the except block is also a tricky reference leak. In Python 3, since exceptions store their traceback, this issue may keep a lot of objects alive too long, whereas they are expected to be destroyed much earlier.
When I started to investigate this issue, it took me 2 hours to begin to understand why so many objects were kept alive. It looks like a reference cycle, a reference leak, or other kind of complex memory leak. Clearing manually local variables (ex: "self = None" in methods) is not enough.
Python 2 has a sys.exc_clear() method which can be used to workaround this issue. It cannot be used in Python 3 since the function was removed in Python 3.
----------
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue23353>
_______________________________________
More information about the Python-bugs-list
mailing list