Comment 9 for bug 1813279

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/queens)

Reviewed: https://review.openstack.org/636024
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=48749c2788396a1dadd57232d18abb7bd131b826
Submitter: Zuul
Branch: stable/queens

commit 48749c2788396a1dadd57232d18abb7bd131b826
Author: Slawek Kaplonski <email address hidden>
Date: Mon Jan 28 23:53:04 2019 +0100

    Fix update of ports cache in router_info class

    RouterInfo class has got internal_ports cache which is updated
    in _process_internal_ports() method.
    There was an issue in this updates logic because it was
    iterating through enumerate local variable "internal_ports"
    which represents current router ports and if such current port
    was found in updated_ports list it was storred in
    RouterInfo().internal_ports variable under same index as was
    found in "internal_ports" local variable.
    This sometimes leads to an issue because same port can be
    stored under different index in internal_ports and
    RouterInfo().internal_ports lists thus wrong port in
    RouterInfo().internal_ports was overwritten.

    Such issue leads to problem with generating radvd config file
    because in ports cache list there was duplicate info about same port
    so radvd config file contained duplicate interface definitions too.

    This should be properly fixed by changing RouterInfo.internal_ports
    to be a dict instead of list of ports but such patch would be much
    bigger and (possibly) harded to backport to stable branches.

    Change-Id: I2e38457942518c8a3e07e606091bb6720317b77e
    Closes-Bug: #1813279
    (cherry picked from commit 21cddc47b446fdfb5535b347c1d7825a04e02c62)