From: Mike Bayer Date: Thu, 18 Apr 2013 15:04:51 +0000 (-0400) Subject: - remove reference to _exc_info before reraise to reduce cycles X-Git-Tag: rel_0_8_1~13^2~10 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6d93918b9b68202fdcb1f76f865efd5cde154963;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - remove reference to _exc_info before reraise to reduce cycles --- diff --git a/lib/sqlalchemy/util/langhelpers.py b/lib/sqlalchemy/util/langhelpers.py index bba8ad734e..f6d9164e6c 100644 --- a/lib/sqlalchemy/util/langhelpers.py +++ b/lib/sqlalchemy/util/langhelpers.py @@ -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):