diff options
| author | Aymeric Augustin <aymeric.augustin@m4x.org> | 2012-11-22 20:55:50 +0100 |
|---|---|---|
| committer | Aymeric Augustin <aymeric.augustin@m4x.org> | 2012-11-22 20:56:41 +0100 |
| commit | b9f9bc9a170430901fae188c375076f9b2cac784 (patch) | |
| tree | 7d3417a8d9ac111b89ee07d0eebf49bf1f4e8c69 | |
| parent | 9bd67f056c6d1697d81841e3e21661069f57b14e (diff) | |
[1.5.x] Fixed #18984 -- Avoided a deadlock in test teardown.
Thanks Jeremy Dunck for the report.
Backport of 891c530 from master.
| -rw-r--r-- | django/test/testcases.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/django/test/testcases.py b/django/test/testcases.py index 96178b4c86..0f76e11c1a 100644 --- a/django/test/testcases.py +++ b/django/test/testcases.py @@ -505,6 +505,12 @@ class TransactionTestCase(SimpleTestCase): # If the test case has a multi_db=True flag, flush all databases. # Otherwise, just flush default. databases = connections if getattr(self, 'multi_db', False) else [DEFAULT_DB_ALIAS] + + # Roll back any pending transactions in order to avoid a deadlock + # during flush when TEST_MIRROR is used (#18984). + for conn in connections.all(): + conn.rollback_unless_managed() + for db in databases: call_command('flush', verbosity=0, interactive=False, database=db, skip_validation=True, reset_sequences=False) |
