From da8972d5420054065b62e100e3cee33a52a491c3 Mon Sep 17 00:00:00 2001 From: Zane Bitter Date: Fri, 17 Nov 2017 14:14:32 -0500 Subject: [PATCH] Retry on DB deadlock when updating resource Updating a row in the DB using UPDATE...WHERE... seems to be prone to deadlocks. We already fixed added retries for updates of the Stack table (bug 1578615); do the same with the Resource table. Depends-On: https://review.openstack.org/#/c/622853/ Change-Id: I3928f1acc3c354711a27523215784a8cf8767581 Closes-Bug: #1732969 (cherry picked from commit e919b723bc6f6604d3165d143de51715fbf057e7) --- heat/db/sqlalchemy/api.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/heat/db/sqlalchemy/api.py b/heat/db/sqlalchemy/api.py index 50bfc37ae1..05584e8683 100644 --- a/heat/db/sqlalchemy/api.py +++ b/heat/db/sqlalchemy/api.py @@ -249,6 +249,8 @@ def _add_atomic_key_to_values(values, atomic_key): values['atomic_key'] = atomic_key + 1 +@oslo_db_api.wrap_db_retry(max_retries=3, retry_on_deadlock=True, + retry_interval=0.5, inc_retry_interval=True) def resource_update(context, resource_id, values, atomic_key, expected_engine_id=None): session = context.session