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 <[email protected]> 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 -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

