Race during adding and updating same port in L3 agent's info can generate wrong radvd config file

Bug #1813278 reported by Slawek Kaplonski
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Confirmed
Medium
Slawek Kaplonski

Bug Description

There is possibility that because of some race in processing adding/updating internal ports info in RouterInfo class, same port, with 2 different revisions and different subnets configured will be added to RouterInfo.internal_ports twice in RouterInfo._process_internal_ports method (https://github.com/openstack/neutron/blob/master/neutron/agent/l3/router_info.py#L544).
If ports have got IPv6 gateway configured and radvd daemon should be started for such router, this may lead to generate radvd config file with duplicate interfaces, like:

interface qr-29c030a8-26
{
   AdvSendAdvert on;
   MinRtrAdvInterval 30;
   MaxRtrAdvInterval 100;
   AdvLinkMTU 1500;
   AdvOtherConfigFlag on;

   prefix 2003:0:0:1::/64
   {
        AdvOnLink on;
        AdvAutonomous on;
   };

   prefix 2003::/64
   {
        AdvOnLink on;
        AdvAutonomous on;
   };
};interface qr-29c030a8-26
{
   AdvSendAdvert on;
   MinRtrAdvInterval 30;
   MaxRtrAdvInterval 100;
   AdvLinkMTU 1500;

   AdvOtherConfigFlag on;

   prefix 2003::/64
   {
        AdvOnLink on;
        AdvAutonomous on;
   };
};

In some cases this may lead to crash radvd daemon. See also https://bugzilla.redhat.com/show_bug.cgi?id=1630167 for more details.

Tags: l3-ha
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.