Commit 891c5306 authored by Aymeric Augustin's avatar Aymeric Augustin
Browse files

Fixed #18984 -- Avoided a deadlock in test teardown.

Thanks Jeremy Dunck for the report.
parent a026e480
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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)