← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1795126] Re: Race condition of DHCP agent updating port after ownership removed and given to another agent will cause extra port creation

 

Reviewed:  https://review.openstack.org/606383
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=b70ee4df885d8ca18cb3dbfbec9691ecc0321f09
Submitter: Zuul
Branch:    master

commit b70ee4df885d8ca18cb3dbfbec9691ecc0321f09
Author: Kailun Qin <kailun.qin@xxxxxxxxx>
Date:   Sun Sep 30 03:11:44 2018 +0800

    Block port update from unbound DHCP agent
    
    Current DHCP port management in Neutron makes the server to clear the
    device_id while the agent is responsible for setting it.
    
    This may cause a potential race condition, for example during network
    rescheduling. The server aims to clear the device_id on a DHCP port and
    assign the network to another agent while the old agent might just be
    taking possession of the port. If the DHCP agent takes possession of the
    port (i.e., update port...set the device_id) before the server clears
    it, then there is no issue. However, if this happens after the clear
    operation by server then the DHCP port would be updated/marked to be
    owned by the old agent.
    
    When the new agent takes over the network scheduled to it, it won't be
    able to find a port to reuse so that an extra port might need to be
    created. This leads to two issues:
    1) an extra port is created and never deleted;
    2) the extra port creation may fail if there are no available IP
    addresses.
    
    This patch proposes a validation check to prevent an agent from updating
    a DHCP port unless the network is bound to that agent.
    
    Co-authored-by: Allain Legacy <Allain.legacy@xxxxxxxxxxxxx>
    
    Closes-Bug: #1795126
    Story: 2003919
    Change-Id: Ie619516c07fb3dc9d025f64c0e1e59d5d808cb6f


** Changed in: neutron
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1795126

Title:
  Race condition of DHCP agent updating port after ownership removed and
  given to another agent will cause extra port creation

Status in neutron:
  Fix Released

Bug description:
  Current DHCP port management in Neutron makes the server to clear the
  device_id while the agent is responsible for setting it.

  This may cause a potential race condition, for example during network
  rescheduling. The server aims to clear the device_id on a DHCP port
  and assign the network to another agent while the old agent might just
  be taking possession of the port. If the DHCP agent takes possession
  of the port (i.e., update port...set the device_id) before the server
  clears it, then there is no issue. However, if this happens after the
  clear operation by server then the DHCP port would be updated/marked
  to be owned by the old agent.

  When the new agent takes over the network scheduled to it, it won't be able to find a port to reuse so that an extra port might need to be created. This leads to two issues:
  1) an extra port is created and never deleted;
  2) the extra port creation may fail if there are no available IP addresses.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1795126/+subscriptions


References