Public bug reported:
In ml2 plugin when dvr seviceable port is deleted, we check if any dvr routers
should be deleted from port's host.
This is done prior to actual port deletion from db by checking if there are any
more dvr serviceable ports on this host.
This is prone to races: if two last compute ports on the host are deleted
concurrently, the check might not return any routers as in both cases it will
see yet another dvr serviceable port on the host:
- p1 and p2 are last compute ports on compute host 'host1'
- p1 and p2 are on the same subnet connected to a dvr router 'r1'
- p1 and p2 are deleted concurrently
- on p1 deletion plugin checks if there are any more dvr serviceable ports on
host1 - sees p2 -> no dvr routers should be deleted
- same on p2 deletion plugin checks if there are any more dvr serviceable ports
on host1 - sees p1 -> no dvr routers should be deleted
- p1 is deleted from DB
- p2 is deleted from DB
- r1 is not deleted from host1 though there are no more ports on it
** Affects: neutron
Importance: Undecided
Assignee: Oleg Bondarev (obondarev)
Status: New
** Tags: l3-dvr-backlog
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1538163
Title:
DVR: race in dvr serviceable port deletion
Status in neutron:
New
Bug description:
In ml2 plugin when dvr seviceable port is deleted, we check if any dvr
routers should be deleted from port's host.
This is done prior to actual port deletion from db by checking if there are
any more dvr serviceable ports on this host.
This is prone to races: if two last compute ports on the host are deleted
concurrently, the check might not return any routers as in both cases it will
see yet another dvr serviceable port on the host:
- p1 and p2 are last compute ports on compute host 'host1'
- p1 and p2 are on the same subnet connected to a dvr router 'r1'
- p1 and p2 are deleted concurrently
- on p1 deletion plugin checks if there are any more dvr serviceable ports on
host1 - sees p2 -> no dvr routers should be deleted
- same on p2 deletion plugin checks if there are any more dvr serviceable
ports on host1 - sees p1 -> no dvr routers should be deleted
- p1 is deleted from DB
- p2 is deleted from DB
- r1 is not deleted from host1 though there are no more ports on it
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1538163/+subscriptions
--
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help : https://help.launchpad.net/ListHelp