← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1785848] Re: Neutron server producing tracebacks with 'L3RouterPlugin' object has no attribute 'is_distributed_router' when DVR is enabled

 

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

commit bc2a4a4032ee22d7edd62f8a9f21ff14cfa3eccf
Author: Brian Haley <bhaley@xxxxxxxxxx>
Date:   Tue Aug 7 15:06:43 2018 -0400

    Correctly call is_distributed_router()
    
    A recent change to _notify_l3_agent_port_update() was
    making a call to is_distributed_router() via the l3plugin,
    but since that method lives in l3_dvr_db.py it was
    failing.  This was not caught by the unit test since it
    was mocking the return value.
    
    Had to modify things to get the router first since the
    object is required for the check.
    
    Change-Id: I2289f882b692b375d1b40d7a50d206d72da66155
    Closes-bug: #1785848


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

Title:
  Neutron server producing tracebacks with 'L3RouterPlugin' object has
  no attribute 'is_distributed_router'  when DVR is enabled

Status in neutron:
  Fix Released

Bug description:
  In environments where DVR is enabled and when an instance with
  floating IPs is moved from one host to another (due to live migration
  or shelving / un-shelvinng) the Neutron server produces the following
  traceback:

  Traceback (most recent call last):
    File "/usr/local/lib/python2.7/dist-packages/neutron_lib/callbacks/manager.py", line 197, in _notify_loop
      callback(resource, event, trigger, **kwargs)
    File "/opt/stack/new/neutron/neutron/db/l3_dvrscheduler_db.py", line 460, in _notify_l3_agent_port_update
       l3plugin.is_distributed_router(fip['router_id']) and
  AttributeError: 'L3RouterPlugin' object has no attribute 'is_distributed_router'

  The problem was introduced by this patch:
  https://review.openstack.org/#/c/579058. Line
  https://review.openstack.org/#/c/579058/3/neutron/db/l3_dvrscheduler_db.py@460
  wrongly tries to call is_distributed_router as though it is a method
  in the L3 plugin. The real intent was to call it from module
  neutron/db/l3_dvr_db.py, since it is defined there outside any classes

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


References