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

Bug 1262647

Summary: Neutron traceback when an external network without IPv6 subnet is attached to an HA Router
Product: Red Hat OpenStack Reporter: Arie Bregman <abregman>
Component: openstack-neutronAssignee: Arie Bregman <abregman>
Status: CLOSED ERRATA QA Contact: Arie Bregman <abregman>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.0 (Kilo)CC: abregman, chrisw, ihrachys, mlopes, nyechiel, sgaddam, tfreger, yeylon
Target Milestone: z2Keywords: Triaged, ZStream
Target Release: 7.0 (Kilo)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-neutron-2015.1.1-4.el7ost Doc Type: Bug Fix
Doc Text:
Prior to this update, in kernel version 3.10, when the last IPv6 address was removed from the interface, IPv6 would shut down on the interface, and the /proc entries corresponding to the interface, /proc/sys/net/ipv6/conf/[interface], were deleted. Consequently, a traceback would occur when IPv6 /proc entries were missing and neutron tried to configure '/proc/sys/net/ipv6/conf/qg-1fc4061d-3c/accept_ra'. With this update, the /proc entry is only configured on the Master HA Router, where the gateway interface has the IPv6 Link Local Address, keeping the functionality intact. As a result, the traceback no longer occurs on Red Hat Enterprise Linux 7.1, which uses kernel 3.10.
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-10-08 12:08:37 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Arie Bregman 2015-09-13 22:25:25 UTC
Description of problem:

For an HA Router which does not have any subnets in the external network, Neutron sets the IPv6 proc entry[1] on the gateway interface to receive Router Advts from external IPv6 router and configure a default route pointing to the LLA of the external IPv6 Router.

Normally for an HA Router in the backup state, Neutron removes Link Local Address (LLA) from the gateway interface.

In Kernel version 3.10 when the last IPv6 address is removed from the interface,
IPv6 is shutdown on the iface and the proc entries corresponding to the iface are deleted (i.e., /proc/sys/net/ipv6/conf/<interface>)
This issue is resolved in the later kernels [2], but the issue exists on platforms with Kernel version 3.10 When IPv6 proc entries are missing and Neutron tries to configure the proc entry we encounter traceback.

[1] /proc/sys/net/ipv6/conf/qg-1fc4061d-3c/accept_ra
[2] http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=876fd05ddbae03166e7037fca957b55bb3be6594

Steps to Reproduce:
1. Use centos/rhel 7.0 with kernel version 3.10
2. remove last ipv6 address from the interface
3. run the following test: tox -e dsvm-functional neutron.tests.functional.agent.test_l3_agent.L3AgentTestCase.test_ha_router_conf_on_restarted_agent

Actual results:
    Command: ['ip', 'netns', 'exec', 'qrouter-e66b99aa-e840-4a13-9311-6242710a5452', 'sysctl', '-w', 'net.ipv6.conf.qg-1fc4061d-3c.accept_ra=2']
    Exit code: 255
    Stdin:
    Stdout:
    Stderr: sysctl: cannot stat /proc/sys/net/ipv6/conf/qg-1fc4061d-3c/accept_ra: No such file or directory

Expected results:
 neutron.tests.functional.agent.test_l3_agent.L3AgentTestCase.test_ha_router_conf_on_restarted_agent... OK

Comment 4 Sridhar Gaddam 2015-09-14 08:54:47 UTC
*** Bug 1261946 has been marked as a duplicate of this bug. ***

Comment 10 errata-xmlrpc 2015-10-08 12:08:37 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2015:1866