linuxbridge trunk plugin doesn't handle subport changes without trunk update

Bug #1625136 reported by Kevin Benton
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Medium
Kevin Benton

Bug Description

The subport event handler is not correctly triggering wiring changes when the subports for a trunk already present on the agent are changed. This leaves a trunk dataplane frozen in time once its first wired up on the linux bridge agent unless it receives another trunk event.

Changed in neutron:
assignee: nobody → Kevin Benton (kevinbenton)
milestone: none → newton-rc2
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.openstack.org/372423

Changed in neutron:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to neutron (master)

Related fix proposed to branch: master
Review: https://review.openstack.org/372424

Changed in neutron:
importance: Undecided → Medium
tags: added: newton-rc-potential
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.openstack.org/372423
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=19f3e9a50edcd4027a325aaf60c6e5fbedd7baac
Submitter: Jenkins
Branch: master

commit 19f3e9a50edcd4027a325aaf60c6e5fbedd7baac
Author: Kevin Benton <email address hidden>
Date: Mon Sep 19 04:21:27 2016 -0700

    Fix linuxbridge trunk subport RPC event handler

    The part of the linuxbridge trunk driver that actually triggered
    the dataplane wiring for subport changes was incorrectly trying to
    fetch the trunk using the trunk ID with a method expecting the port
    ID. This would always result in it thinking the trunk wasn't on the
    host and returning without wiring.

    This fixes it by adding another method to fetch trunks by trunk ID.
    All of the other operations in this function already expect trunk IDs.

    This was discovered and the fix verified with the scenario test in
    the dependent patch.

    Change-Id: I25324bc1445cc083799ff54f8508a9505517ce84
    Closes-Bug: #1625136

Changed in neutron:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/newton)

Fix proposed to branch: stable/newton
Review: https://review.openstack.org/373956

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

Reviewed: https://review.openstack.org/373956
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=6608cbb84b2be0c5336eac960f30217b4818a484
Submitter: Jenkins
Branch: stable/newton

commit 6608cbb84b2be0c5336eac960f30217b4818a484
Author: Kevin Benton <email address hidden>
Date: Mon Sep 19 04:21:27 2016 -0700

    Fix linuxbridge trunk subport RPC event handler

    The part of the linuxbridge trunk driver that actually triggered
    the dataplane wiring for subport changes was incorrectly trying to
    fetch the trunk using the trunk ID with a method expecting the port
    ID. This would always result in it thinking the trunk wasn't on the
    host and returning without wiring.

    This fixes it by adding another method to fetch trunks by trunk ID.
    All of the other operations in this function already expect trunk IDs.

    This was discovered and the fix verified with the scenario test in
    the dependent patch.

    Change-Id: I25324bc1445cc083799ff54f8508a9505517ce84
    Closes-Bug: #1625136
    (cherry picked from commit 19f3e9a50edcd4027a325aaf60c6e5fbedd7baac)

tags: added: in-stable-newton
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to neutron (master)

Reviewed: https://review.openstack.org/372424
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=88424604016416264804cd8d87c2cebc158c6157
Submitter: Jenkins
Branch: master

commit 88424604016416264804cd8d87c2cebc158c6157
Author: Kevin Benton <email address hidden>
Date: Mon Sep 19 04:26:10 2016 -0700

    Add basic status transition trunk scenario test

    While we wait on a solution to getting 802.1q access inside
    of the guest VM, it is helpful to at least have a test that
    causes the agents to wire up trunk ports and ensure data model
    status transitions happen as expected and that connectivity to
    the trunk port itself is not disrupted by subport operations.

    This test performs those assertions by booting two VMs with
    trunk ports, creating subports on one, asserting statuses,
    moving the subports to the other, and asserting statuses again
    while ensuring connectivity to the VM in between.

    This test uncovered both of the related bugs.

    Related-Bug: #1625136
    Related-Bug: #1625135
    Change-Id: I5f634e3bcc54f5420ba49027b4fb250a13fe277a

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to neutron (stable/newton)

Related fix proposed to branch: stable/newton
Review: https://review.openstack.org/374497

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to neutron (stable/newton)

Reviewed: https://review.openstack.org/374497
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=ccd58557784913587ec2a72467707bbe2de6833f
Submitter: Jenkins
Branch: stable/newton

commit ccd58557784913587ec2a72467707bbe2de6833f
Author: Kevin Benton <email address hidden>
Date: Mon Sep 19 04:26:10 2016 -0700

    Add basic status transition trunk scenario test

    While we wait on a solution to getting 802.1q access inside
    of the guest VM, it is helpful to at least have a test that
    causes the agents to wire up trunk ports and ensure data model
    status transitions happen as expected and that connectivity to
    the trunk port itself is not disrupted by subport operations.

    This test performs those assertions by booting two VMs with
    trunk ports, creating subports on one, asserting statuses,
    moving the subports to the other, and asserting statuses again
    while ensuring connectivity to the VM in between.

    This test uncovered both of the related bugs.

    Related-Bug: #1625136
    Related-Bug: #1625135
    Change-Id: I5f634e3bcc54f5420ba49027b4fb250a13fe277a
    (cherry picked from commit 88424604016416264804cd8d87c2cebc158c6157)

tags: added: linuxbridge trunk
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 9.0.0.0rc2

This issue was fixed in the openstack/neutron 9.0.0.0rc2 release candidate.

tags: removed: newton-rc-potential
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 10.0.0.0b1

This issue was fixed in the openstack/neutron 10.0.0.0b1 development milestone.

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.