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

Bug 1261946

Summary: Neutron traceback when an external network without IPv6 subnet is attached to an HA Router.
Product: Red Hat OpenStack Reporter: Sridhar Gaddam <sgaddam>
Component: openstack-neutronAssignee: lpeer <lpeer>
Status: CLOSED DUPLICATE QA Contact: Ofer Blaut <oblaut>
Severity: high Docs Contact:
Priority: unspecified    
Version: 7.0 (Kilo)CC: chrisw, ihrachys, nyechiel, yeylon
Target Milestone: ---   
Target Release: 8.0 (Liberty)   
Hardware: x86_64   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-09-14 08:54:46 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 Sridhar Gaddam 2015-09-10 13:32:05 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 (used in platforms like RHEL7/Centos7) 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 see the following traceback in Neutron. 

[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
[3] Trace:
    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

Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
1. Create an HA Router
2. Create an internal network, subnet and associate the internal subnet to HA router.
3. Create an external network without any subnet.
4. Associate the external network with the HA Router. 
5. Do not configure "ipv6_gateway" in neutron l3_agent.ini configuration.

Actual results:
Traceback seen in Neutron l3-agent logs.

Expected results:
Neutron should not trace out. 

Additional info:

Comment 3 Ihar Hrachyshka 2015-09-10 13:45:58 UTC
The patch got into 2015.1.1 thru rebase. It's not a regression though since HA routers never worked with IPv6 external networks with no subnets before.

It affects functional test CI for OSP, so we may need to revert the patch before proper fix emerges.

Comment 4 Sridhar Gaddam 2015-09-14 08:54:46 UTC

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