neutron/neutron/agent
Swaminathan Vasudevan 7cb6942b79 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
(cherry picked from commit d40322c7d4)

Conflicts:
	neutron/agent/l3/dvr_fip_ns.py
	neutron/tests/functional/agent/l3/test_dvr_router.py

Change-Id: Ia8c92cea2f8798582c39ad3450ab3b3c45a356f7
2016-12-21 10:20:28 -08:00
..
common Merge "Fix help message for external_network_bridge" into stable/mitaka 2016-08-25 17:53:36 +00:00
dhcp Use revision to discard stale DHCP updates 2016-11-29 00:19:00 -08:00
l2 Add setting default max_burst value if not given by user 2016-07-25 22:29:44 +02:00
l3 DVR: Fix race condition in creation of fip gateway 2016-12-21 10:20:28 -08:00
linux Skip larger than /64 subnets in DHCP agent 2016-12-11 00:44:17 +00:00
metadata Move state reporting initialization to after worker forking 2016-07-26 13:45:03 +00:00
ovsdb Pass timeout in milliseconds to timer_wait 2016-08-12 07:53:37 +00:00
windows Fix Windows IPDevice.device_has_ip racefulness 2016-05-23 17:34:05 +00:00
__init__.py Empty files should not contain copyright or license 2014-10-20 00:50:32 +00:00
dhcp_agent.py Remove deprecated use_namespaces option 2015-11-18 19:17:29 +01:00
firewall.py Open vSwitch conntrack based firewall driver 2016-02-16 16:47:21 +00:00
l3_agent.py Register RA and PD config options in l3-agent 2016-01-12 21:03:54 -05:00
metadata_agent.py Allow metadata proxy running with nobody user/group 2015-04-06 18:31:37 +02:00
rpc.py Don't use exponential back-off for report_state 2016-07-29 19:13:45 +00:00
securitygroups_rpc.py firewall: don't warn about a driver that does not accept bridge 2016-04-11 05:50:49 +00:00