summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorAnssi Kääriäinen <akaariai@gmail.com>2013-02-12 23:11:22 +0200
committerAnssi Kääriäinen <akaariai@gmail.com>2013-02-13 00:39:43 +0200
commitdec7dd99f095f938bc4306a0260d5b131935ad82 (patch)
treed6452d410c13c0b65fd4837048dd4c923f4d104b /django
parentb4fb448f8387d92832fc70ac58de69c73d5f1729 (diff)
[1.4.x] Removed try-except in django.db.close_connection()
The reason was that the except clause needed to remove a connection from the django.db.connections dict, but other parts of Django do not expect this to happen. In addition the except clause was silently swallowing the exception messages. Refs #19707, special thanks to Carl Meyer for pointing out that this approach should be taken.
Diffstat (limited to 'django')
-rw-r--r--django/db/__init__.py13
-rw-r--r--django/db/utils.py3
2 files changed, 5 insertions, 11 deletions
diff --git a/django/db/__init__.py b/django/db/__init__.py
index 1340839c13..605c3a20d4 100644
--- a/django/db/__init__.py
+++ b/django/db/__init__.py
@@ -45,14 +45,11 @@ def close_connection(**kwargs):
# Avoid circular imports
from django.db import transaction
for conn in connections:
- try:
- transaction.abort(conn)
- connections[conn].close()
- except Exception:
- # The connection's state is unknown, so it has to be
- # abandoned. This could happen for example if the network
- # connection has a failure.
- del connections[conn]
+ # If an error happens here the connection will be left in broken
+ # state. Once a good db connection is again available, the
+ # connection state will be cleaned up.
+ transaction.abort(conn)
+ connections[conn].close()
signals.request_finished.connect(close_connection)
# Register an event that resets connection.queries
diff --git a/django/db/utils.py b/django/db/utils.py
index 2ef6e3f687..3f5b86ee12 100644
--- a/django/db/utils.py
+++ b/django/db/utils.py
@@ -97,9 +97,6 @@ class ConnectionHandler(object):
def __setitem__(self, key, value):
setattr(self._connections, key, value)
- def __delitem__(self, key):
- delattr(self._connections, key)
-
def __iter__(self):
return iter(self.databases)