There is a race condition when adding a new recordset to a zone
and when central is processing the update_status from a previous
recordset/zone operation. In the subsequent recordset operation,
central fails to update the zone's action/status in DB to UPDATE/PENDING.
It remains as NONE/ACTIVE, and worker error's out.
Each operation retrieves a different copy in memory of the Zone object
(when it calls self.storage.get_zone). As a result this does not update
the obj_changes field for the zone object for the latter operation.
Therefore the DB update doesn't update any values.
update_status should be synchronized as it updates zone DB
Change-Id: Ib4e0bc567ba8eb54c61c3921d165521bf2f12206
Closes-Bug: #1713875
(cherry picked from commit 12cd654b143e215dbe01cc2688a7d6e6cf3ce62f)
Reviewed: https:/ /review. openstack. org/606888 /git.openstack. org/cgit/ openstack/ designate/ commit/ ?id=af1bb8a36a7 04bb1a226fe5154 f828e152ef23e1
Committed: https:/
Submitter: Zuul
Branch: stable/rocky
commit af1bb8a36a704bb 1a226fe5154f828 e152ef23e1
Author: Arjun Baindur <email address hidden>
Date: Tue Jul 31 14:36:32 2018 -0700
Make update_status use synchronized_zone
There is a race condition when adding a new recordset to a zone
and when central is processing the update_status from a previous
recordset/zone operation. In the subsequent recordset operation,
central fails to update the zone's action/status in DB to UPDATE/PENDING.
It remains as NONE/ACTIVE, and worker error's out.
Each operation retrieves a different copy in memory of the Zone object get_zone) . As a result this does not update
(when it calls self.storage.
the obj_changes field for the zone object for the latter operation.
Therefore the DB update doesn't update any values.
update_status should be synchronized as it updates zone DB
Change-Id: Ib4e0bc567ba8eb 54c61c3921d1655 21bf2f12206 dbe01cc2688a7d6 e6cf3ce62f)
Closes-Bug: #1713875
(cherry picked from commit 12cd654b143e215