Public bug reported: [port forwarding] should not process port forwarding if snat node only run DHCP
Assuming you have 3 network nodes, the agent modes are all `dvr_snat`. One `dvr_ha` router1 is scheduled to node1 and node2. The dhcp namespace (connected to the router1) is scheduled to node3. Then snat-namespace will only exist on node1 and node2. But on onde3, the l3 agent will also process this router because of the DHCP namespace, as well as the port_forwarding extension. Then exception raised. Log trace: 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent [req-6507e5bd-a500-47ea-9f71-e0123eb24e63 - a890d8d8264640ba9bae20d03e4071fd - - -] Failed to process compatible router: 867e1473-4495-4513-8759-dee4cb1b9cef: AttributeError: 'NoneType' object has no attribute 'ipv4' 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent Traceback (most recent call last): 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/agent.py", line 655, in _process_router_update 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent self._process_router_if_compatible(router) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/agent.py", line 573, in _process_router_if_compatible 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent self._process_added_router(router) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/l3_agent_with_metering.py", line 524, in wrapped 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent func(self, *args, **kwargs) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/l3_agent_with_metering.py", line 532, in _process_added_router 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent self)._process_added_router(router) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/agent.py", line 583, in _process_added_router 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent self.l3_ext_manager.add_router(self.context, router) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/l3_agent_extensions_manager.py", line 42, in add_router 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent extension.obj.add_router(context, data) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/extensions/port_forwarding.py", line 453, in add_router 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent self.process_port_forwarding(context, data) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/extensions/port_forwarding.py", line 443, in process_port_forwarding 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent context, ri, ri.fip_managed_by_port_forwardings) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/extensions/port_forwarding.py", line 433, in check_local_port_forwardings 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent namespace, iptable_manager) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "<string>", line 2, in _process_create 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/coordination.py", line 76, in _synchronized 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent return f(*a, **k) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/extensions/port_forwarding.py", line 241, in _process_create 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent self._rule_apply(iptables_manager, port_forwarding, rule_tag) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/extensions/port_forwarding.py", line 173, in _rule_apply 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent iptables_manager.ipv4['nat'].clear_rules_by_tag(rule_tag) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent AttributeError: 'NoneType' object has no attribute 'ipv4' 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent ** Affects: neutron Importance: Undecided Status: New -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1825088 Title: [port forwarding] should not process port forwarding if snat node only run DHCP Status in neutron: New Bug description: [port forwarding] should not process port forwarding if snat node only run DHCP Assuming you have 3 network nodes, the agent modes are all `dvr_snat`. One `dvr_ha` router1 is scheduled to node1 and node2. The dhcp namespace (connected to the router1) is scheduled to node3. Then snat- namespace will only exist on node1 and node2. But on onde3, the l3 agent will also process this router because of the DHCP namespace, as well as the port_forwarding extension. Then exception raised. Log trace: 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent [req-6507e5bd-a500-47ea-9f71-e0123eb24e63 - a890d8d8264640ba9bae20d03e4071fd - - -] Failed to process compatible router: 867e1473-4495-4513-8759-dee4cb1b9cef: AttributeError: 'NoneType' object has no attribute 'ipv4' 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent Traceback (most recent call last): 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/agent.py", line 655, in _process_router_update 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent self._process_router_if_compatible(router) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/agent.py", line 573, in _process_router_if_compatible 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent self._process_added_router(router) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/l3_agent_with_metering.py", line 524, in wrapped 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent func(self, *args, **kwargs) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/l3_agent_with_metering.py", line 532, in _process_added_router 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent self)._process_added_router(router) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/agent.py", line 583, in _process_added_router 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent self.l3_ext_manager.add_router(self.context, router) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/l3_agent_extensions_manager.py", line 42, in add_router 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent extension.obj.add_router(context, data) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/extensions/port_forwarding.py", line 453, in add_router 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent self.process_port_forwarding(context, data) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/extensions/port_forwarding.py", line 443, in process_port_forwarding 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent context, ri, ri.fip_managed_by_port_forwardings) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/extensions/port_forwarding.py", line 433, in check_local_port_forwardings 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent namespace, iptable_manager) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "<string>", line 2, in _process_create 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/coordination.py", line 76, in _synchronized 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent return f(*a, **k) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/extensions/port_forwarding.py", line 241, in _process_create 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent self._rule_apply(iptables_manager, port_forwarding, rule_tag) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent File "/usr/lib/python2.7/site-packages/neutron/agent/l3/extensions/port_forwarding.py", line 173, in _rule_apply 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent iptables_manager.ipv4['nat'].clear_rules_by_tag(rule_tag) 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent AttributeError: 'NoneType' object has no attribute 'ipv4' 2019-04-17 12:39:53.064 3823374 ERROR neutron.agent.l3.agent To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1825088/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp