Hard Reboot VM with multiple port lost QoS

Bug #1864630 reported by Nguyen Thanh Cong
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Undecided
Nguyen Thanh Cong

Bug Description

I have a VM with multiple ports, assume port_one and port_two. Both port have QoS. When i hard reboot my VM, port_two still has QoS, port_one loses.

https://review.opendev.org/#/c/690098/11
https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py#L1630
It because both ports are located in ports_re_added. It will loop through the ports. port_one is iterated first, events ['re_added'] is assigned port_one, events ['removed'] is assigned port_two. In the second loop, events ['re_added'] is set to port_two instead of adding port_two to list. So after the loop, only port_two is left in events ['re_added'].

Reproduce:
- Create VM with multi port
- Hard Reboot Server
- Check QoS with command ovs-vsctl list interface <port>

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.opendev.org/709687

Changed in neutron:
assignee: nobody → Nguyen Thanh Cong (congnt95)
status: New → In Progress
tags: added: qos
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.opendev.org/709687
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=5600163e9b4fb89b1525e9e415b1fedbe9526501
Submitter: Zuul
Branch: master

commit 5600163e9b4fb89b1525e9e415b1fedbe9526501
Author: Nguyen Thanh Cong <email address hidden>
Date: Tue Feb 25 17:25:36 2020 +0700

    [OvS] Handle re_added multi ports

    Multiple ports are located in ports_re_added. Assume we have port_one
    and port_two. It will loop through the ports. Port_one is iterated
    first, events ['re_added'] is assigned port_one, events ['removed']
    is assigned port_two. In the second loop, events ['re_added'] is set
    to port_two instead of adding port_two to list. So after the loop,
    only port_two is left in events ['re_added'].

    Change-Id: If8edd29dd741f1688ffcac341fd58173539ba000
    Closes-Bug: #1864630

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

Fix proposed to branch: stable/train
Review: https://review.opendev.org/714049

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

Reviewed: https://review.opendev.org/714049
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=22df4695049b8ee7b19859e5b0633bec29afc9a7
Submitter: Zuul
Branch: stable/train

commit 22df4695049b8ee7b19859e5b0633bec29afc9a7
Author: Nguyen Thanh Cong <email address hidden>
Date: Tue Feb 25 17:25:36 2020 +0700

    [OvS] Handle re_added multi ports

    Multiple ports are located in ports_re_added. Assume we have port_one
    and port_two. It will loop through the ports. Port_one is iterated
    first, events ['re_added'] is assigned port_one, events ['removed']
    is assigned port_two. In the second loop, events ['re_added'] is set
    to port_two instead of adding port_two to list. So after the loop,
    only port_two is left in events ['re_added'].

    Change-Id: If8edd29dd741f1688ffcac341fd58173539ba000
    Closes-Bug: #1864630
    (cherry picked from commit 5600163e9b4fb89b1525e9e415b1fedbe9526501)

tags: added: in-stable-train
tags: added: neutron-proactive-backport-potential
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/stein)

Fix proposed to branch: stable/stein
Review: https://review.opendev.org/751220

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

Fix proposed to branch: stable/rocky
Review: https://review.opendev.org/751223

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

Fix proposed to branch: stable/queens
Review: https://review.opendev.org/751224

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

Reviewed: https://review.opendev.org/751220
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=2711ad5819d97146528ef94fccc61ae58915409b
Submitter: Zuul
Branch: stable/stein

commit 2711ad5819d97146528ef94fccc61ae58915409b
Author: Nguyen Thanh Cong <email address hidden>
Date: Tue Feb 25 17:25:36 2020 +0700

    [OvS] Handle re_added multi ports

    Multiple ports are located in ports_re_added. Assume we have port_one
    and port_two. It will loop through the ports. Port_one is iterated
    first, events ['re_added'] is assigned port_one, events ['removed']
    is assigned port_two. In the second loop, events ['re_added'] is set
    to port_two instead of adding port_two to list. So after the loop,
    only port_two is left in events ['re_added'].

    Change-Id: If8edd29dd741f1688ffcac341fd58173539ba000
    Closes-Bug: #1864630
    (cherry picked from commit 5600163e9b4fb89b1525e9e415b1fedbe9526501)
    (cherry picked from commit 22df4695049b8ee7b19859e5b0633bec29afc9a7)

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

Reviewed: https://review.opendev.org/751224
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=1b148c6839dfc0120ba17d6bb278f7399c873c5f
Submitter: Zuul
Branch: stable/queens

commit 1b148c6839dfc0120ba17d6bb278f7399c873c5f
Author: Nguyen Thanh Cong <email address hidden>
Date: Tue Feb 25 17:25:36 2020 +0700

    [OvS] Handle re_added multi ports

    Multiple ports are located in ports_re_added. Assume we have port_one
    and port_two. It will loop through the ports. Port_one is iterated
    first, events ['re_added'] is assigned port_one, events ['removed']
    is assigned port_two. In the second loop, events ['re_added'] is set
    to port_two instead of adding port_two to list. So after the loop,
    only port_two is left in events ['re_added'].

    Conflicts:
        neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_ovs_neutron_agent.py

    Change-Id: If8edd29dd741f1688ffcac341fd58173539ba000
    Closes-Bug: #1864630
    (cherry picked from commit 5600163e9b4fb89b1525e9e415b1fedbe9526501)
    (cherry picked from commit 22df4695049b8ee7b19859e5b0633bec29afc9a7)

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

Reviewed: https://review.opendev.org/751223
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=489ec55094dafa1f151afbfac8fe5ff34fde99c1
Submitter: Zuul
Branch: stable/rocky

commit 489ec55094dafa1f151afbfac8fe5ff34fde99c1
Author: Nguyen Thanh Cong <email address hidden>
Date: Tue Feb 25 17:25:36 2020 +0700

    [OvS] Handle re_added multi ports

    Multiple ports are located in ports_re_added. Assume we have port_one
    and port_two. It will loop through the ports. Port_one is iterated
    first, events ['re_added'] is assigned port_one, events ['removed']
    is assigned port_two. In the second loop, events ['re_added'] is set
    to port_two instead of adding port_two to list. So after the loop,
    only port_two is left in events ['re_added'].

    Conflicts:
        neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_ovs_neutron_agent.py

    Change-Id: If8edd29dd741f1688ffcac341fd58173539ba000
    Closes-Bug: #1864630
    (cherry picked from commit 5600163e9b4fb89b1525e9e415b1fedbe9526501)
    (cherry picked from commit 22df4695049b8ee7b19859e5b0633bec29afc9a7)

tags: added: in-stable-rocky
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron queens-eol

This issue was fixed in the openstack/neutron queens-eol release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron rocky-eol

This issue was fixed in the openstack/neutron rocky-eol release.

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.