]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- remove reference to _exc_info before reraise to reduce cycles
authorMike Bayer <mike_mp@zzzcomputing.com>
Thu, 18 Apr 2013 15:04:51 +0000 (11:04 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Thu, 18 Apr 2013 15:04:51 +0000 (11:04 -0400)
lib/sqlalchemy/util/langhelpers.py

index bba8ad734e18b3b4ba07594a1e20fd465bd14043..f6d9164e6c0d6725ddce19a575a14b0388aeb0c9 100644 (file)
@@ -51,10 +51,13 @@ class safe_reraise(object):
         self._exc_info = sys.exc_info()
 
     def __exit__(self, type_, value, traceback):
+        # see #2703 for notes
         if type_ is None:
             exc_type, exc_value, exc_tb = self._exc_info
+            self._exc_info = None   # remove potential circular references
             compat.reraise(exc_type, exc_value, exc_tb)
         else:
+            self._exc_info = None   # remove potential circular references
             compat.reraise(type_, value, traceback)
 
 def decode_slice(slc):