OpenStack Networking (Neutron)
Go to file
Slawek Kaplonski 5c1afcaf2b [DVR] Add lock during creation of FIP agent gateway port
In case when new external network is set as gateway network for
dvr router, neutron tries to create floating IP agent gateway port.
There should be always max 1 such port per network per L3 agent but
sometimes when there are 2 requests to set external gateway for 2
different routers executed almost in same time it may happend that
there will be 2 such ports created.
That will cause error with configuration of one of routers on L3 agent
and this will cause e.g. problems with access from VMs to metadata
service.
Such issues are visible in DVR CI jobs from time to time. Please check
related bug for details.

This patch adds lock mechanism during creation of such FIP gateway port.
Such solution isn't fully solving exising race condition as if 2
requests will be processed by api workers running on 2 different nodes
than this race can still happend.
But this should mitigate the issue a bit and solve problem in U/S gates
at least.
For proper fix we should probably add some constraint on database level
to prevent creation of 2 such ports for one network and one host but
such solution will not be easy to backport to stable branches so I would
prefer first to go with this easy workaround.

Conflicts:
    neutron/db/l3_dvr_db.py

Change-Id: Iabab7e4d36c7d6a876b2b74423efd7106a5f63f6
Related-Bug: #1830763
(cherry picked from commit 7b81c1bc67)
(cherry picked from commit f7532f0c92)
2019-08-12 10:27:22 +02:00
api-ref Fix some typos 2016-06-28 22:46:19 +02:00
bin Use os-xenapi for neutron when XenServer as hypervisor 2017-03-30 18:33:37 +00:00
devstack Add port_forwarding to devstack plugin 2019-05-27 10:47:32 +00:00
doc neutron.conf needs lock_path set for router to operate 2019-04-16 14:27:25 +00:00
etc Fix creating policy rules from subattributes. 2019-05-09 06:32:37 +00:00
neutron [DVR] Add lock during creation of FIP agent gateway port 2019-08-12 10:27:22 +02:00
playbooks/legacy OpenDev Migration Patch 2019-04-19 19:39:02 +00:00
rally-jobs [rally] Port custom plugins to use proper code 2018-05-18 00:25:35 +03:00
releasenotes Add custom ethertype processing 2019-07-01 15:33:34 +00:00
tools Merge "Switch to stestr" 2018-06-07 02:24:02 +00:00
.coveragerc Cleanup coverage configuration 2016-10-17 17:06:19 +05:30
.gitignore Switch to stestr 2018-06-02 13:03:33 +02:00
.gitreview OpenDev Migration Patch 2019-04-19 19:39:02 +00:00
.mailmap Add mailmap entry 2014-05-16 13:40:04 -04:00
.pylintrc Update pylint disable list to pass pylint 1.7.1 checks 2017-06-08 09:49:46 +00:00
.stestr.conf Fix post gate hook to accommodate for new os-testr 2017-09-12 14:20:12 -06:00
.zuul.yaml OpenDev Migration Patch 2019-04-19 19:39:02 +00:00
CONTRIBUTING.rst Update link for contribution 2017-08-31 16:44:51 +02:00
HACKING.rst Update the documentation link for doc migration 2017-07-22 18:46:13 +09:00
LICENSE Adding Apache Version 2.0 license file. This is the official license agreement under which Quantum code is available to 2011-08-08 12:31:04 -07:00
README.rst Add release notes link in README 2018-07-10 15:40:00 +07:00
TESTING.rst Docs: Fix wrong stestr argument 2018-07-17 09:45:43 +00:00
babel.cfg Use babel to generate translation file 2013-01-24 00:20:32 +08:00
bindep.txt Add libffi-dev to bindep.txt 2017-06-13 19:26:49 +00:00
lower-constraints.txt bump neutron-lib requirements to 1.18.0 2018-07-19 06:29:48 -06:00
requirements.txt metadata: use requests for comms with nova api 2018-09-04 10:04:47 +01:00
setup.cfg Add enforcer logic for neutron policy 2019-03-25 16:07:51 -04:00
setup.py Updated from global requirements 2017-03-04 11:19:58 +00:00
test-requirements.txt cap bandit in test-requirements.txt 2018-08-17 17:14:21 +02:00
tox.ini Update UPPER_CONSTRAINTS_FILE for stable/rocky 2018-08-21 11:12:47 +00:00

README.rst

Team and repository tags

image

Welcome!

To learn more about neutron:

Get in touch via email. Use [Neutron] in your subject.

To learn how to contribute:

CONTRIBUTING.rst