From 6d93918b9b68202fdcb1f76f865efd5cde154963 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Thu, 18 Apr 2013 11:04:51 -0400 Subject: [PATCH] - remove reference to _exc_info before reraise to reduce cycles --- lib/sqlalchemy/util/langhelpers.py | 3 +++ 1 file changed, 3 insertions(+) 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): -- 2.47.2