← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1560945] Re: Unable to create DVR+HA routers

 

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

commit a8b60671150ac383c6ed24c26e773a97a476f7d2
Author: John Schwarz <jschwarz@xxxxxxxxxx>
Date:   Wed Mar 23 14:05:37 2016 +0200

    Fix reference to uninitialized iptables manager
    
    DvrEdgeRouter.process_address_scope() currently assumes that
    snat_iptables_manager was initialized, however this is only done when an
    external gateway is added. In case a new DVR+HA router was created
    without an external gateway, the l3 agent will raise an exception and
    will not create the router correctly. This patch adds a simple check to
    make sure that it is defined before it's actually used.
    
    Closes-Bug: #1560945
    Change-Id: I677e0837956a6d008a3935d961f078987a07d0c4


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

Title:
  Unable to create DVR+HA routers

Status in neutron:
  Fix Released

Bug description:
  When creating a new DVR+HA, the router is created (the API returns
  successfully) but the l3 agent enters an endless loop:

  2016-03-23 13:57:37.340 ERROR neutron.agent.l3.agent [-] Failed to process compatible router 'a04b3fd7-d46c-4520-82af-18d16835469d'
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent Traceback (most recent call last):
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent   File "/opt/openstack/neutron/neutron/agent/l3/agent.py", line 497, in _process_router_update
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent     self._process_router_if_compatible(router)
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent   File "/opt/openstack/neutron/neutron/agent/l3/agent.py", line 436, in _process_router_if_compatible
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent     self._process_updated_router(router)
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent   File "/opt/openstack/neutron/neutron/agent/l3/agent.py", line 450, in _process_updated_router
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent     ri.process(self)
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent   File "/opt/openstack/neutron/neutron/agent/l3/dvr_edge_ha_router.py", line 92, in process
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent     super(DvrEdgeHaRouter, self).process(agent)
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent   File "/opt/openstack/neutron/neutron/agent/l3/dvr_local_router.py", line 486, in process
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent     super(DvrLocalRouter, self).process(agent)
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent   File "/opt/openstack/neutron/neutron/agent/l3/dvr_router_base.py", line 30, in process
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent     super(DvrRouterBase, self).process(agent)
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent   File "/opt/openstack/neutron/neutron/agent/l3/ha_router.py", line 386, in process
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent     super(HaRouter, self).process(agent)
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent   File "/opt/openstack/neutron/neutron/common/utils.py", line 377, in call
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent     self.logger(e)
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent   File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 220, in __exit__
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent     self.force_reraise()
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent   File "/usr/lib/python2.7/site-packages/oslo_utils/excutils.py", line 196, in force_reraise
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent     six.reraise(self.type_, self.value, self.tb)
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent   File "/opt/openstack/neutron/neutron/common/utils.py", line 374, in call
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent     return func(*args, **kwargs)
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent   File "/opt/openstack/neutron/neutron/agent/l3/router_info.py", line 963, in process
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent     self.process_address_scope()
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent   File "/opt/openstack/neutron/neutron/agent/l3/dvr_edge_router.py", line 235, in process_address_scope
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent     with snat_iptables_manager.defer_apply():
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent AttributeError: 'NoneType' object has no attribute 'defer_apply'
  2016-03-23 13:57:37.340 TRACE neutron.agent.l3.agent 

  This happens in upstream master.

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


References