heat/heat
Zane Bitter 22eb2e2538 Retry resource check if atomic key incremented
When updating a resource that hasn't changed, we didn't previously retry
the write when the atomic_key of the resource didn't match what we expect.
In addition to locking a resource to update it, the atomic key is also
incremented when modifying metadata and storing cached attribute values.
Apparently there is some mechanism that can cause this to happen in the
time between when the resource is loaded and when we attempt to update the
template ID &c. in the DB.

When the resource is not locked and its template ID hasn't changed since we
loaded it, we can assume that the update failed due to a mismatched atomic
key alone. Handle this case by sending another resource-check RPC message,
so that the operation check will be retried with fresh data from the DB.

Change-Id: I5afd5602096be54af5da256927fe828366dbd63b
Closes-Bug: #1763021
2018-04-25 16:02:24 -04:00
..
api Remove stack watch service 2018-01-28 09:35:05 +05:30
cloudinit Validate that python3 is ready for loguserdata 2016-08-26 11:49:30 +00:00
cmd Remove stack watch service 2018-01-28 09:35:05 +05:30
common Fixing unicode issue when to_dict is called on py2.7 env 2018-04-06 04:41:49 -07:00
db Merge "Remove db api and tables for CloudWatch" 2018-02-16 23:30:40 +00:00
engine Retry resource check if atomic key incremented 2018-04-25 16:02:24 -04:00
hacking Restrict use of iteritems, iterkeys and itervalues 2016-03-23 10:05:54 +00:00
httpd Remove CloudWatch API 2018-01-28 09:11:17 +05:30
locale Imported Translations from Zanata 2018-03-12 06:43:23 +00:00
objects Remove stack watch service 2018-01-28 09:35:05 +05:30
policies Remove CloudWatch API 2018-01-28 09:11:17 +05:30
rpc Remove stack watch service 2018-01-28 09:35:05 +05:30
scaling Merge "Eliminate nested stack loading in InstanceGroup/ASG scaling" 2018-04-02 04:35:47 +00:00
tests Retry resource check if atomic key incremented 2018-04-25 16:02:24 -04:00
__init__.py Make import of oslo libraries namespaceless 2015-02-18 22:54:10 +01:00
version.py