summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm/session.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2015-04-01 16:55:58 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2015-04-01 16:55:58 -0400
commit59816435dae75db9712f80c34734813a0246205a (patch)
tree2b625dd299fd97ba0d5ddb06a20fd0c96d317f2a /lib/sqlalchemy/orm/session.py
parent4b164935481c44c126500761f873c5b0c5bdbe80 (diff)
downloadsqlalchemy-59816435dae75db9712f80c34734813a0246205a.tar.gz
- Added a list() call around a weak dictionary used within the
commit phase of the session, which without it could cause a "dictionary changed size during iter" error if garbage collection interacted within the process. Change was introduced by
Diffstat (limited to 'lib/sqlalchemy/orm/session.py')
-rw-r--r--lib/sqlalchemy/orm/session.py2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/sqlalchemy/orm/session.py b/lib/sqlalchemy/orm/session.py
index bc9444040..f3ad2349c 100644
--- a/lib/sqlalchemy/orm/session.py
+++ b/lib/sqlalchemy/orm/session.py
@@ -300,7 +300,7 @@ class SessionTransaction(object):
if not self.nested and self.session.expire_on_commit:
for s in self.session.identity_map.all_states():
s._expire(s.dict, self.session.identity_map._modified)
- for s in self._deleted:
+ for s in list(self._deleted):
s._detach()
self._deleted.clear()
elif self.nested: