Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1285882

Summary: Setting admin_state_up=False on an HA router with gateway raises an exception in standby nodes
Product: Red Hat OpenStack Reporter: Brent Eagles <beagles>
Component: openstack-neutronAssignee: lpeer <lpeer>
Status: CLOSED DUPLICATE QA Contact: Ofer Blaut <oblaut>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0 (Kilo)CC: amuller, chrisw, nyechiel, yeylon
Target Milestone: ---   
Target Release: 8.0 (Liberty)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-12-16 23:29:37 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Brent Eagles 2015-11-26 20:41:36 UTC
Cloned from launchpad bug 1505203.

Description:

Steps to reproduce:

1. Create an HA router,
2. Connect the router to a gateway,
3. neutron router-update <router> --admin-state-down=False

This results in the following traceback on the standby l3 agents:

2015-10-12 14:43:44.755 ERROR neutron.agent.l3.router_info [-]
Command: ['ip', 'netns', 'exec', u'qrouter-0ce494ff-593a-4d6d-bf06-248979d6cf7a', 'ip', '-4', 'addr', 'del', '172.24.4.11/24', 'dev', u'qg-4f6a7587-00']
Exit code: 2
Stdin:
Stdout:
Stderr: RTNETLINK answers: Cannot assign requested address

2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info Traceback (most recent call last):
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info   File "/opt/openstack/neutron/neutron/common/utils.py", line 356, in call
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info     return func(*args, **kwargs)
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info   File "/opt/openstack/neutron/neutron/agent/l3/router_info.py", line 695, in process
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info     self.process_external(agent)
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info   File "/opt/openstack/neutron/neutron/agent/l3/router_info.py", line 661, in process_external
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info     self._process_external_gateway(ex_gw_port, agent.pd)
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info   File "/opt/openstack/neutron/neutron/agent/l3/router_info.py", line 575, in _process_external_gateway
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info     self.external_gateway_removed(self.ex_gw_port, interface_name)
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info   File "/opt/openstack/neutron/neutron/agent/l3/ha_router.py", line 368, in external_gateway_removed
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info     interface_name)
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info   File "/opt/openstack/neutron/neutron/agent/l3/router_info.py", line 550, in external_gateway_removed
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info     ip_addr['prefixlen']))
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info   File "/opt/openstack/neutron/neutron/agent/l3/router_info.py", line 201, in remove_external_gateway_ip
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info     device.delete_addr_and_conntrack_state(ip_cidr)
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info   File "/opt/openstack/neutron/neutron/agent/linux/ip_lib.py", line 255, in delete_addr_and_conntrack_state
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info     self.addr.delete(cidr)
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info   File "/opt/openstack/neutron/neutron/agent/linux/ip_lib.py", line 511, in delete
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info     'dev', self.name))
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info   File "/opt/openstack/neutron/neutron/agent/linux/ip_lib.py", line 295, in _as_root
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info     use_root_namespace=use_root_namespace)
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info   File "/opt/openstack/neutron/neutron/agent/linux/ip_lib.py", line 80, in _as_root
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info     log_fail_as_error=self.log_fail_as_error)
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info   File "/opt/openstack/neutron/neutron/agent/linux/ip_lib.py", line 89, in _execute
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info     log_fail_as_error=log_fail_as_error)
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info   File "/opt/openstack/neutron/neutron/agent/linux/utils.py", line 157, in execute
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info     raise RuntimeError(m)
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info RuntimeError:
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info Command: ['ip', 'netns', 'exec', u'qrouter-0ce494ff-593a-4d6d-bf06-248979d6cf7a', 'ip', '-4', 'addr', 'del', '172.24.4.11/24', 'dev', u'qg-4f6a7587-00']
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info Exit code: 2
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info Stdin:
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info Stdout:
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info Stderr: RTNETLINK answers: Cannot assign requested address
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info
2015-10-12 14:43:44.755 TRACE neutron.agent.l3.router_info
2015-10-12 14:43:44.755 ERROR neutron.agent.l3.agent [-] Error while deleting router 0ce494ff-593a-4d6d-bf06-248979d6cf7a

Specification URL (additional information):

https://bugs.launchpad.net/neutron/+bug/1505203

Comment 1 Assaf Muller 2015-12-16 23:29:37 UTC
We're going to rebase OSP 8 before GA, no need to track individual backports from stable/liberty.

*** This bug has been marked as a duplicate of bug 1289994 ***