From 9d4fd441274f3b1ff91aea6a991b66df860d620f Mon Sep 17 00:00:00 2001 From: AlanCoding Date: Mon, 31 Jul 2017 12:45:17 -0400 Subject: [PATCH] retry to delete inventory in deadlocks --- awx/main/tasks.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/awx/main/tasks.py b/awx/main/tasks.py index ed6ae37f2e..370e7762ea 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -409,8 +409,8 @@ def update_host_smart_inventory_memberships(): return -@task(queue='tower', base=LogErrorsTask) -def delete_inventory(inventory_id): +@task(bind=True, queue='tower', base=LogErrorsTask, max_retries=5) +def delete_inventory(self, inventory_id): with ignore_inventory_computed_fields(), \ ignore_inventory_group_removal(): try: @@ -421,6 +421,9 @@ def delete_inventory(inventory_id): {'group_name': 'inventories', 'inventory_id': inventory_id, 'status': 'deleted'} ) logger.debug('Deleted inventory: %s' % inventory_id) + except OperationalError: + logger.warning('Database error deleting inventory {}, but will retry.'.format(inventory_id)) + self.retry(countdown=10) except Inventory.DoesNotExist: logger.error("Delete Inventory failed due to missing inventory: " + str(inventory_id)) return