[Python-3000] Exception tracebacks living too long in 3.0 (original) (raw)
Jeffrey Yasskin jyasskin at gmail.com
Sat Mar 29 06:15:19 CET 2008
- Previous message: [Python-3000] [Python-Dev] the release gods are angry at python
- Next message: [Python-3000] Exception tracebacks living too long in 3.0
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
If you apply the following patch to the py3k branch, you can watch test_threading fail in test_no_refcycle_through_target:
Index: Lib/threading.py
--- Lib/threading.py (revision 62033) +++ Lib/threading.py (working copy) @@ -540,6 +540,7 @@ finally: with _active_limbo_lock: self._stop()
_sleep(0.01) try: # We don't call self.__delete() because it also # grabs _active_limbo_lock.
This apparently happens because the traceback in sys.exc_info keeps the frame for the call to RunSelfFunction._run alive even though there are otherwise no references to the object. In 2.6, this is fixed by calling sys.exc_clear() before allowing the thread to be joined, but that function has gone away in 3.0. I had thought that exc_info was automatically cleared at the end of any except block that caught an exception, but apparently that isn't the case. Is this a bug in 3.0, or do we need to keep sys.exc_clear() around?
-- Namasté, Jeffrey Yasskin
- Previous message: [Python-3000] [Python-Dev] the release gods are angry at python
- Next message: [Python-3000] Exception tracebacks living too long in 3.0
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]