neutron/neutron
Swaminathan Vasudevan d40322c7d4 DVR: Fix race condition in creation of fip gateway
In large-scale environments, we have seen a router update
arrive for one tenant while we are still creating the
router for a different tenant and initializing the shared
floating IP gateway port.  Sometimes these updates can
get scheduled simultaneously, with the second running
before we are done creating all the resources in the
first, causing an exception when trying to set the
default route since either the interface or IP address
does not exist yet.

Add a lock to better synchronize these functions so
a create can finish before an update can be done.

If it still fails, we will throw an exception so that
the namespace will be cleaned-up and the update can be
re-scheduled for the next iteration.

Closes-Bug: #1631513
Change-Id: Ia8c92cea2f8798582c39ad3450ab3b3c45a356f7
2016-12-13 10:58:08 -05:00
..
agent DVR: Fix race condition in creation of fip gateway 2016-12-13 10:58:08 -05:00
api Redirect ExtensionDescriptor to neutron-lib 2016-11-25 21:31:53 -05:00
callbacks callbacks: Make the value of FLOATING_IP match with api resource 2016-11-18 19:42:33 +09:00
cmd Adopt neutron-lib plugin directory 2016-11-23 04:45:33 -07:00
common Merge "Neutron lib adoption" 2016-11-22 08:37:24 +00:00
conf Merge "Refactoring config options for plugin l2pop opts" 2016-11-28 09:46:34 +00:00
core_extensions Adopt neutron-lib plugin directory 2016-11-23 04:45:33 -07:00
db Merge "Integrate Address Scope OVO into DB" 2016-11-28 14:59:21 +00:00
debug Replace device owners hard coded strings to neutron_lib constants 2016-07-12 04:11:35 -04:00
extensions Merge "Add check to address_pair that items in list are dict" 2016-11-25 08:04:29 +00:00
hacking Merge "Removed deprecated checks" 2016-11-22 20:53:53 +00:00
ipam Adopt neutron-lib plugin directory 2016-11-23 04:45:33 -07:00
locale Imported Translations from Zanata 2016-08-19 07:27:43 +00:00
notifiers Adopt neutron-lib plugin directory 2016-11-23 04:45:33 -07:00
objects Merge "Squash revert to breaking changes" 2016-11-24 16:53:17 +00:00
pecan_wsgi Remove REVERSED_PLURALS and get_resource_info() 2016-11-23 11:11:12 -05:00
plugins Merge "Refactoring config options for plugin l2pop opts" 2016-11-28 09:46:34 +00:00
quota Merge "Mark quota operations as retriable" 2016-09-13 20:34:31 +00:00
scheduler Merge "Solve unexpected NoneType returned by _get_routers_can_schedule." 2016-11-25 18:30:12 +00:00
server Revert "Revert "Remove threading before process forking"" 2016-06-02 21:26:08 +00:00
services Adopt neutron-lib plugin directory 2016-11-23 04:45:33 -07:00
tests DVR: Fix race condition in creation of fip gateway 2016-12-13 10:58:08 -05:00
__init__.py Hacking rule to check i18n usage 2016-03-30 21:28:37 -04:00
_i18n.py
auth.py
context.py Use context from_environ to load contexts 2016-07-12 13:49:41 +10:00
manager.py Adopt neutron-lib plugin directory 2016-11-23 04:45:33 -07:00
neutron_plugin_base_v2.py Revert "Revert "Remove threading before process forking"" 2016-06-02 21:26:08 +00:00
opts.py Merge "Refactoring config options for l2 agent ext opts" 2016-11-22 22:57:49 +00:00
policy.py Adopt neutron-lib plugin directory 2016-11-23 04:45:33 -07:00
service.py Adopt neutron-lib plugin directory 2016-11-23 04:45:33 -07:00
version.py
worker.py Move AgentStatusCheckWorker to PeriodicWorker 2016-11-17 15:31:19 -08:00
wsgi.py Merge "Use dispose_pool() from oslo.db" 2016-08-26 22:03:41 +00:00