aboutsummaryrefslogtreecommitdiffstats
path: root/debug_toolbar/utils/tracking/db.py
diff options
context:
space:
mode:
authorAnssi Kääriäinen2012-07-05 14:06:21 +0300
committerAnssi Kääriäinen2012-08-27 14:26:11 +0300
commite806603a6e4ac3d488a0cadb1e962507a6f76fc1 (patch)
treecffbdc286fbbc83570127412e05180046eab37d6 /debug_toolbar/utils/tracking/db.py
parent1258e75ddc5648695b1ccad7604b45c0834959bb (diff)
downloaddjango-debug-toolbar-e806603a6e4ac3d488a0cadb1e962507a6f76fc1.tar.bz2
Fixed issue #230 -- Avoid queries in aborted transactions
On PostgreSQL when the transaction is in aborted status, checking connection.isolation_level will result in an error.
Diffstat (limited to 'debug_toolbar/utils/tracking/db.py')
-rw-r--r--debug_toolbar/utils/tracking/db.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/debug_toolbar/utils/tracking/db.py b/debug_toolbar/utils/tracking/db.py
index 4d87090..01b4331 100644
--- a/debug_toolbar/utils/tracking/db.py
+++ b/debug_toolbar/utils/tracking/db.py
@@ -146,10 +146,17 @@ class NormalCursorWrapper(object):
}
if engine == 'psycopg2':
+ # If an erroneous query was ran on the connection, it might
+ # be in a state where checking isolation_level raises an
+ # exception.
+ try:
+ iso_level = conn.isolation_level
+ except conn.InternalError:
+ iso_level = 'unknown'
params.update({
'trans_id': self.logger.get_transaction_id(alias),
'trans_status': conn.get_transaction_status(),
- 'iso_level': conn.isolation_level,
+ 'iso_level': iso_level,
'encoding': conn.encoding,
})