← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1585738] Re: ML2 doesn't return fixed_ips on a port update with binding

 

Reviewed:  https://review.openstack.org/321152
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=fcd33b31282848c5853cebc37e1e8e0a06e878f2
Submitter: Jenkins
Branch:    master

commit fcd33b31282848c5853cebc37e1e8e0a06e878f2
Author: Hong Hui Xiao <xiaohhui@xxxxxxxxxx>
Date:   Tue Jun 7 15:35:32 2016 -0600

    Return fixed_ips from port update
    
    fixed_ips has a join relationship with port. During a DB transaction,
    it will be acquired once. If the IPAllocation is updated after
    acquiring fixed_ips, the port DB model object will still have the
    stale value of fixed_ips, which is empty in the case of reported bug.
    
    Expire the fixed_ips of the port can make the next query of port have
    the latest fixed_ips, and thus, has the latest fixed_ips in the result
    of update port.
    
    Change-Id: I8ca52caf661daa2975cf53212d008eb953d83cc0
    Closes-Bug: #1585738


** 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/1585738

Title:
  ML2 doesn't return fixed_ips on a port update with binding

Status in neutron:
  Fix Released

Bug description:
  I found this yesterday while working on deferred IP allocation for
  routed networks.  However, it isn't unique to deferred port binding.
  With my deferred IP allocation patch [2], I need to be able to make a
  port create call [1] without binding information that doesn't allocate
  an IP address.  Then, I need to follow it up with a port update which
  sends host binding information and allocates an IP address.  But, when
  I do that, the response doesn't contain the IP addresses that were
  allocated [3].  However, immediately following it with a GET on the
  same port shows the allocation [4].

  This doesn't happen in other plugins besides ML2.  Only with ML2.
  I've put up a patch to run unit tests with ML2 that expose this
  problem [5].  The problem can be reproduced on master [6].  I can get
  it to happen by creating a network without a subnet, creating a port
  on the network (with no IP address), and then calling port update to
  allocate an IP address.

  If this goes unaddressed, Nova will have to make a GET call after
  doing a port update with binding information when working with a port
  with deferred IP allocation.

  [1] http://paste.openstack.org/show/505419/
  [2] https://review.openstack.org/#/c/320631/
  [3] http://paste.openstack.org/show/505420/
  [4] http://paste.openstack.org/show/505421/
  [5] http://logs.openstack.org/57/320657/2/check/gate-neutron-python27/153a619/testr_results.html.gz
  [6] https://review.openstack.org/321152

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


References