yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #21874
[Bug 1372282] Re: Deadlock when operating ports if multi neutron server depolyed
The deadlock that the lockutils is implemented for is *only* for
coroutines in the same thread. Different servers are not affected by
this problem because the one with the lock will continue to execute
while the other waits. See [1] for details of how this works in a single
thread with coroutines.
1. https://docs.google.com/drawings/d/13A2x4AWbf8zmzeGApUmYVlBrW8CMTPFTCBGSP_nTzDA/edit?usp=sharing
** Changed in: neutron
Status: New => Invalid
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1372282
Title:
Deadlock when operating ports if multi neutron server depolyed
Status in OpenStack Neutron (virtual network service):
Invalid
Bug description:
When updating ports, ML2 follows these two database operations:
(1) update port (2) delete port security group bindings
which will acquire a lock on port then security-group-port-binding
and when deleting ports, ML2 follows these two database operations:
(1) delete port security group bindings (2) delete port
which will acquire a lock on security-group-port-binding then port
Though lockutils.lock is added to prevent dead lock caused by
different threads in the same process, if two or more Neutron server
is deployed, there exists a scenario that one neutron server is
executing port updating while the other one is executing port deleting
on the same port, thus database dead lock may still occur.
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1372282/+subscriptions
References