summaryrefslogtreecommitdiff
path: root/django/db/transaction.py
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2014-04-10 21:14:50 +0200
committerAymeric Augustin <aymeric.augustin@m4x.org>2014-04-10 21:22:47 +0200
commitee837b9a22220d08fea1e499bec3b094851a1bbe (patch)
tree3e294084aa2b5716bad868a1b3fbd543e601ceca /django/db/transaction.py
parent8176150850b2e34b2afe1dc107e184eb4c6cd668 (diff)
Increased robustness of 58161e4e. Refs #22291.
Diffstat (limited to 'django/db/transaction.py')
-rw-r--r--django/db/transaction.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/django/db/transaction.py b/django/db/transaction.py
index 1f64a689bd..02859a2966 100644
--- a/django/db/transaction.py
+++ b/django/db/transaction.py
@@ -217,7 +217,13 @@ class Atomic(object):
try:
connection.savepoint_commit(sid)
except DatabaseError:
- connection.savepoint_rollback(sid)
+ try:
+ connection.savepoint_rollback(sid)
+ except Error:
+ # If rolling back to a savepoint fails, mark for
+ # rollback at a higher level and avoid shadowing
+ # the original exception.
+ connection.needs_rollback = True
raise
else:
# Commit transaction
@@ -243,7 +249,7 @@ class Atomic(object):
else:
try:
connection.savepoint_rollback(sid)
- except DatabaseError:
+ except Error:
# If rolling back to a savepoint fails, mark for
# rollback at a higher level and avoid shadowing
# the original exception.