← Back to team overview

yahoo-eng-team team mailing list archive

[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