summaryrefslogtreecommitdiff
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 23:18:36 +0200
commit1bcc8eb0f64831b24c2769e033a10e530c8ed140 (patch)
treef6871a41b115a34ed0e91e9019d7e28a4ac47978
parent2ad0bc132a6f70a128d8e1fec689c6a474ddde89 (diff)
[1.7.x] Increased robustness of 58161e4e. Refs #22291.
Backport of ee837b9a from master
-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 1a3699121f..aae0f3f714 100644
--- a/django/db/transaction.py
+++ b/django/db/transaction.py
@@ -325,7 +325,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
@@ -351,7 +357,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.