Configuration of the ovs controller by neutron-ovs-agent isn't idempotent

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

Bug Description

When neutron-ovs-agent is restarted, or doing full sync e.g. after recovery of the connectivity to rabbitmq, it is setting controller for bridges in the openvswitch. That operation isn't idempotent, and even if controller was already created, it will create new one. That, in some cases can lead to short (1-2 seconds) traffic loss in the dataplane. We observed that by doing UDP traffic test between 2 VMs:

- server A run:
sudo iperf3 -s -p 5000 -i 1

- server B run:
iperf3 -c 192.168.155.143 -p 5000 -u --length 1400 -b 1M -i 1 -t 3001

When neutron-ovs-agent on the node where server B runs is restarted, packet loss can be observed in iperf, like:

[ 5] 44.00-45.00 sec 122 KBytes 997 Kbits/sec 0.028 ms 0/89 (0%)
iperf3: OUT OF ORDER - incoming packet = 4047 and received packet = 4048 AND SP = 5
iperf3: OUT OF ORDER - incoming packet = 4046 and received packet = 4049 AND SP = 5
iperf3: OUT OF ORDER - incoming packet = 4051 and received packet = 4053 AND SP = 5
iperf3: OUT OF ORDER - incoming packet = 4052 and received packet = 4054 AND SP = 5
[ 5] 45.00-46.00 sec 123 KBytes 1.01 Mbits/sec 0.021 ms 4/90 (4.4%)
[ 5] 46.00-47.00 sec 122 KBytes 997 Kbits/sec 0.028 ms 0/89 (0%)
iperf3: OUT OF ORDER - incoming packet = 4218 and received packet = 4219 AND SP = 5
iperf3: OUT OF ORDER - incoming packet = 4220 and received packet = 4221 AND SP = 5
iperf3: OUT OF ORDER - incoming packet = 4222 and received packet = 4223 AND SP = 5
[ 5] 47.00-48.00 sec 122 KBytes 997 Kbits/sec 0.024 ms 3/89 (3.4%)

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/c/openstack/neutron/+/815255

Changed in neutron:
status: Confirmed → 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.opendev.org/c/openstack/neutron/+/815459

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

Reviewed: https://review.opendev.org/c/openstack/neutron/+/815459
Committed: https://opendev.org/openstack/neutron/commit/0194856da19f0ce96b613968ab415821037f18d0
Submitter: "Zuul (22348)"
Branch: master

commit 0194856da19f0ce96b613968ab415821037f18d0
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Tue Oct 26 09:21:33 2021 +0000

    [OVS] Workaround when OpenFlow controller restarts

    When a new OF controller is added or when new OF protocols are added to
    a bridge, the OF controller is restarted. When that happens, the os-ken
    ``OfctlService`` instance removes the OF controller datapath and waits
    for an update event that will add a new one. During this time no OF
    controllers (datapaths) will be registered and any request will be
    rejected with a ``InvalidDatapath`` exception.

    This patch is a temporary workaround that prevents any command from
    being executed just after those two described operations, providing
    time to OVS to send the OF updates.

    Related-Bug: #1948642
    Change-Id: I03878a2e650d5f0d0167e0f7daa351b12bae8725

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

Reviewed: https://review.opendev.org/c/openstack/neutron/+/815255
Committed: https://opendev.org/openstack/neutron/commit/11d166be683d36ba51e3f85ddea45cb0a1fcf8db
Submitter: "Zuul (22348)"
Branch: master

commit 11d166be683d36ba51e3f85ddea45cb0a1fcf8db
Author: Slawek Kaplonski <email address hidden>
Date: Mon Oct 25 10:59:24 2021 +0200

    Don't setup bridge controller if it is already set

    Setting new controller for bridge every time when neutron-ovs-agent
    is restarted or is doing full-sync may cause some short data plane
    connectivity loss and is not needed if same controller is already
    configured for the bridge.
    With this patch neutron-ovs-agent will first check if controller is
    configured for the bridge and if it's the same as what should be
    configured, it will skip setting it up.

    With this patch also protocols added to the bridge will be first checked
    if they aren't already there and only missing ones will be added if
    necessary.

    Setting of the connectivity mode and inactivity probe is
    always performed as this don't cause connectivity issues and is cheap
    so we can always ensure that those parameters are configured properly.

    Closes-Bug: #1948642
    Change-Id: Idfa763df8c60d8ae46cd6351d1b6dc7d950b4c67

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

Fix proposed to branch: stable/xena
Review: https://review.opendev.org/c/openstack/neutron/+/816454

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

Fix proposed to branch: stable/wallaby
Review: https://review.opendev.org/c/openstack/neutron/+/816348

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

Fix proposed to branch: stable/victoria
Review: https://review.opendev.org/c/openstack/neutron/+/816457

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

Fix proposed to branch: stable/ussuri
Review: https://review.opendev.org/c/openstack/neutron/+/816349

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/c/openstack/neutron/+/816459

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/c/openstack/neutron/+/816470

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/c/openstack/neutron/+/816471

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/c/openstack/neutron/+/816472

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

Reviewed: https://review.opendev.org/c/openstack/neutron/+/816454
Committed: https://opendev.org/openstack/neutron/commit/0a945f626f38edbc909af5147a25f9e5b393f674
Submitter: "Zuul (22348)"
Branch: stable/xena

commit 0a945f626f38edbc909af5147a25f9e5b393f674
Author: Slawek Kaplonski <email address hidden>
Date: Mon Oct 25 10:59:24 2021 +0200

    Don't setup bridge controller if it is already set

    Setting new controller for bridge every time when neutron-ovs-agent
    is restarted or is doing full-sync may cause some short data plane
    connectivity loss and is not needed if same controller is already
    configured for the bridge.
    With this patch neutron-ovs-agent will first check if controller is
    configured for the bridge and if it's the same as what should be
    configured, it will skip setting it up.

    With this patch also protocols added to the bridge will be first checked
    if they aren't already there and only missing ones will be added if
    necessary.

    Setting of the connectivity mode and inactivity probe is
    always performed as this don't cause connectivity issues and is cheap
    so we can always ensure that those parameters are configured properly.

    Conflicts:
        neutron/agent/common/ovs_lib.py

    Closes-Bug: #1948642
    Change-Id: Idfa763df8c60d8ae46cd6351d1b6dc7d950b4c67
    (cherry picked from commit 11d166be683d36ba51e3f85ddea45cb0a1fcf8db)

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

Reviewed: https://review.opendev.org/c/openstack/neutron/+/816348
Committed: https://opendev.org/openstack/neutron/commit/b1eccf5a2deaf6d18ff18dfacfbcf7ef7fdb781f
Submitter: "Zuul (22348)"
Branch: stable/wallaby

commit b1eccf5a2deaf6d18ff18dfacfbcf7ef7fdb781f
Author: Slawek Kaplonski <email address hidden>
Date: Mon Oct 25 10:59:24 2021 +0200

    Don't setup bridge controller if it is already set

    Setting new controller for bridge every time when neutron-ovs-agent
    is restarted or is doing full-sync may cause some short data plane
    connectivity loss and is not needed if same controller is already
    configured for the bridge.
    With this patch neutron-ovs-agent will first check if controller is
    configured for the bridge and if it's the same as what should be
    configured, it will skip setting it up.

    With this patch also protocols added to the bridge will be first checked
    if they aren't already there and only missing ones will be added if
    necessary.

    Setting of the connectivity mode and inactivity probe is
    always performed as this don't cause connectivity issues and is cheap
    so we can always ensure that those parameters are configured properly.

    Conflicts:
        neutron/agent/common/ovs_lib.py

    Closes-Bug: #1948642
    Change-Id: Idfa763df8c60d8ae46cd6351d1b6dc7d950b4c67
    (cherry picked from commit 11d166be683d36ba51e3f85ddea45cb0a1fcf8db)

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

Reviewed: https://review.opendev.org/c/openstack/neutron/+/816349
Committed: https://opendev.org/openstack/neutron/commit/11fe2bff17d8ad27c0c49037fcd36203f9baa32d
Submitter: "Zuul (22348)"
Branch: stable/ussuri

commit 11fe2bff17d8ad27c0c49037fcd36203f9baa32d
Author: Slawek Kaplonski <email address hidden>
Date: Mon Oct 25 10:59:24 2021 +0200

    Don't setup bridge controller if it is already set

    Setting new controller for bridge every time when neutron-ovs-agent
    is restarted or is doing full-sync may cause some short data plane
    connectivity loss and is not needed if same controller is already
    configured for the bridge.
    With this patch neutron-ovs-agent will first check if controller is
    configured for the bridge and if it's the same as what should be
    configured, it will skip setting it up.

    With this patch also protocols added to the bridge will be first checked
    if they aren't already there and only missing ones will be added if
    necessary.

    Setting of the connectivity mode and inactivity probe is
    always performed as this don't cause connectivity issues and is cheap
    so we can always ensure that those parameters are configured properly.

    Conflicts:
        neutron/agent/common/ovs_lib.py
        neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_bridge.py
        neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_bridge_test_base.py

    Closes-Bug: #1948642
    Change-Id: Idfa763df8c60d8ae46cd6351d1b6dc7d950b4c67
    (cherry picked from commit 11d166be683d36ba51e3f85ddea45cb0a1fcf8db)
    (cherry picked from commit b1eccf5a2deaf6d18ff18dfacfbcf7ef7fdb781f)

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

Reviewed: https://review.opendev.org/c/openstack/neutron/+/816459
Committed: https://opendev.org/openstack/neutron/commit/4456a87dac68d566970d32100b3b6565cb508419
Submitter: "Zuul (22348)"
Branch: stable/train

commit 4456a87dac68d566970d32100b3b6565cb508419
Author: Slawek Kaplonski <email address hidden>
Date: Mon Oct 25 10:59:24 2021 +0200

    Don't setup bridge controller if it is already set

    Setting new controller for bridge every time when neutron-ovs-agent
    is restarted or is doing full-sync may cause some short data plane
    connectivity loss and is not needed if same controller is already
    configured for the bridge.
    With this patch neutron-ovs-agent will first check if controller is
    configured for the bridge and if it's the same as what should be
    configured, it will skip setting it up.

    With this patch also protocols added to the bridge will be first checked
    if they aren't already there and only missing ones will be added if
    necessary.

    Setting of the connectivity mode and inactivity probe is
    always performed as this don't cause connectivity issues and is cheap
    so we can always ensure that those parameters are configured properly.

    Conflicts:
        neutron/agent/common/ovs_lib.py
        neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_bridge.py
        neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_bridge_test_base.py

    Closes-Bug: #1948642
    Change-Id: Idfa763df8c60d8ae46cd6351d1b6dc7d950b4c67
    (cherry picked from commit 11d166be683d36ba51e3f85ddea45cb0a1fcf8db)
    (cherry picked from commit b1eccf5a2deaf6d18ff18dfacfbcf7ef7fdb781f)
    (cherry picked from commit 11fe2bff17d8ad27c0c49037fcd36203f9baa32d)

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

Reviewed: https://review.opendev.org/c/openstack/neutron/+/816457
Committed: https://opendev.org/openstack/neutron/commit/18c1795e88ff89ec1bda29e5a92001210433940f
Submitter: "Zuul (22348)"
Branch: stable/victoria

commit 18c1795e88ff89ec1bda29e5a92001210433940f
Author: Slawek Kaplonski <email address hidden>
Date: Mon Oct 25 10:59:24 2021 +0200

    Don't setup bridge controller if it is already set

    Setting new controller for bridge every time when neutron-ovs-agent
    is restarted or is doing full-sync may cause some short data plane
    connectivity loss and is not needed if same controller is already
    configured for the bridge.
    With this patch neutron-ovs-agent will first check if controller is
    configured for the bridge and if it's the same as what should be
    configured, it will skip setting it up.

    With this patch also protocols added to the bridge will be first checked
    if they aren't already there and only missing ones will be added if
    necessary.

    Setting of the connectivity mode and inactivity probe is
    always performed as this don't cause connectivity issues and is cheap
    so we can always ensure that those parameters are configured properly.

    Conflicts:
        neutron/agent/common/ovs_lib.py
        neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_bridge.py
        neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_bridge_test_base.py

    Closes-Bug: #1948642
    Change-Id: Idfa763df8c60d8ae46cd6351d1b6dc7d950b4c67
    (cherry picked from commit 11d166be683d36ba51e3f85ddea45cb0a1fcf8db)
    (cherry picked from commit b1eccf5a2deaf6d18ff18dfacfbcf7ef7fdb781f)

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

Reviewed: https://review.opendev.org/c/openstack/neutron/+/816470
Committed: https://opendev.org/openstack/neutron/commit/e2cc54977e27c307f80bbfffde4b16e976ab004e
Submitter: "Zuul (22348)"
Branch: stable/stein

commit e2cc54977e27c307f80bbfffde4b16e976ab004e
Author: Slawek Kaplonski <email address hidden>
Date: Mon Oct 25 10:59:24 2021 +0200

    Don't setup bridge controller if it is already set

    Setting new controller for bridge every time when neutron-ovs-agent
    is restarted or is doing full-sync may cause some short data plane
    connectivity loss and is not needed if same controller is already
    configured for the bridge.
    With this patch neutron-ovs-agent will first check if controller is
    configured for the bridge and if it's the same as what should be
    configured, it will skip setting it up.

    With this patch also protocols added to the bridge will be first checked
    if they aren't already there and only missing ones will be added if
    necessary.

    Setting of the connectivity mode and inactivity probe is
    always performed as this don't cause connectivity issues and is cheap
    so we can always ensure that those parameters are configured properly.

    Conflicts:
        neutron/agent/common/ovs_lib.py
        neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_bridge.py
        neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_bridge_test_base.py

    Closes-Bug: #1948642
    Change-Id: Idfa763df8c60d8ae46cd6351d1b6dc7d950b4c67
    (cherry picked from commit 11d166be683d36ba51e3f85ddea45cb0a1fcf8db)
    (cherry picked from commit b1eccf5a2deaf6d18ff18dfacfbcf7ef7fdb781f)
    (cherry picked from commit 11fe2bff17d8ad27c0c49037fcd36203f9baa32d)

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

This issue was fixed in the openstack/neutron 16.4.2 release.

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

Related fix proposed to branch: stable/xena
Review: https://review.opendev.org/c/openstack/neutron/+/821211

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

Related fix proposed to branch: stable/wallaby
Review: https://review.opendev.org/c/openstack/neutron/+/821182

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

Related fix proposed to branch: stable/victoria
Review: https://review.opendev.org/c/openstack/neutron/+/821183

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

Reviewed: https://review.opendev.org/c/openstack/neutron/+/821183
Committed: https://opendev.org/openstack/neutron/commit/f35a0a06e591ddb136d0f970684123ac6fd27fcd
Submitter: "Zuul (22348)"
Branch: stable/victoria

commit f35a0a06e591ddb136d0f970684123ac6fd27fcd
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Tue Oct 26 09:21:33 2021 +0000

    [OVS] Workaround when OpenFlow controller restarts

    When a new OF controller is added or when new OF protocols are added to
    a bridge, the OF controller is restarted. When that happens, the os-ken
    ``OfctlService`` instance removes the OF controller datapath and waits
    for an update event that will add a new one. During this time no OF
    controllers (datapaths) will be registered and any request will be
    rejected with a ``InvalidDatapath`` exception.

    This patch is a temporary workaround that prevents any command from
    being executed just after those two described operations, providing
    time to OVS to send the OF updates.

    Conflicts:
            neutron/agent/common/ovs_lib.py

    Related-Bug: #1948642
    Change-Id: I03878a2e650d5f0d0167e0f7daa351b12bae8725
    (cherry picked from commit 0194856da19f0ce96b613968ab415821037f18d0)

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

Reviewed: https://review.opendev.org/c/openstack/neutron/+/821211
Committed: https://opendev.org/openstack/neutron/commit/2fcf48260ad85d4f2fdd568ad7f1d8dacdf84d5c
Submitter: "Zuul (22348)"
Branch: stable/xena

commit 2fcf48260ad85d4f2fdd568ad7f1d8dacdf84d5c
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Tue Oct 26 09:21:33 2021 +0000

    [OVS] Workaround when OpenFlow controller restarts

    When a new OF controller is added or when new OF protocols are added to
    a bridge, the OF controller is restarted. When that happens, the os-ken
    ``OfctlService`` instance removes the OF controller datapath and waits
    for an update event that will add a new one. During this time no OF
    controllers (datapaths) will be registered and any request will be
    rejected with a ``InvalidDatapath`` exception.

    This patch is a temporary workaround that prevents any command from
    being executed just after those two described operations, providing
    time to OVS to send the OF updates.

    Conflicts:
            neutron/agent/common/ovs_lib.py

    Related-Bug: #1948642
    Change-Id: I03878a2e650d5f0d0167e0f7daa351b12bae8725
    (cherry picked from commit 0194856da19f0ce96b613968ab415821037f18d0)

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

Reviewed: https://review.opendev.org/c/openstack/neutron/+/821182
Committed: https://opendev.org/openstack/neutron/commit/cc0d42e0dfb94b580f98765c06a823d92d07df45
Submitter: "Zuul (22348)"
Branch: stable/wallaby

commit cc0d42e0dfb94b580f98765c06a823d92d07df45
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Tue Oct 26 09:21:33 2021 +0000

    [OVS] Workaround when OpenFlow controller restarts

    When a new OF controller is added or when new OF protocols are added to
    a bridge, the OF controller is restarted. When that happens, the os-ken
    ``OfctlService`` instance removes the OF controller datapath and waits
    for an update event that will add a new one. During this time no OF
    controllers (datapaths) will be registered and any request will be
    rejected with a ``InvalidDatapath`` exception.

    This patch is a temporary workaround that prevents any command from
    being executed just after those two described operations, providing
    time to OVS to send the OF updates.

    Conflicts:
            neutron/agent/common/ovs_lib.py

    Related-Bug: #1948642
    Change-Id: I03878a2e650d5f0d0167e0f7daa351b12bae8725
    (cherry picked from commit 0194856da19f0ce96b613968ab415821037f18d0)

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

Reviewed: https://review.opendev.org/c/openstack/neutron/+/816472
Committed: https://opendev.org/openstack/neutron/commit/d91dc006269b83f78fb52e421550d8895fba65b7
Submitter: "Zuul (22348)"
Branch: stable/queens

commit d91dc006269b83f78fb52e421550d8895fba65b7
Author: Slawek Kaplonski <email address hidden>
Date: Mon Oct 25 10:59:24 2021 +0200

    Don't setup bridge controller if it is already set

    Setting new controller for bridge every time when neutron-ovs-agent
    is restarted or is doing full-sync may cause some short data plane
    connectivity loss and is not needed if same controller is already
    configured for the bridge.
    With this patch neutron-ovs-agent will first check if controller is
    configured for the bridge and if it's the same as what should be
    configured, it will skip setting it up.

    With this patch also protocols added to the bridge will be first checked
    if they aren't already there and only missing ones will be added if
    necessary.

    Setting of the connectivity mode and inactivity probe is
    always performed as this don't cause connectivity issues and is cheap
    so we can always ensure that those parameters are configured properly.

    Conflicts:
        neutron/agent/common/ovs_lib.py
        neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_bridge.py
        neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_bridge_test_base.py

    Closes-Bug: #1948642
    Change-Id: Idfa763df8c60d8ae46cd6351d1b6dc7d950b4c67
    (cherry picked from commit 11d166be683d36ba51e3f85ddea45cb0a1fcf8db)
    (cherry picked from commit b1eccf5a2deaf6d18ff18dfacfbcf7ef7fdb781f)
    (cherry picked from commit 11fe2bff17d8ad27c0c49037fcd36203f9baa32d)

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/c/openstack/neutron/+/816471
Committed: https://opendev.org/openstack/neutron/commit/0471901f7a9e31587bace6c23d28e37e76743685
Submitter: "Zuul (22348)"
Branch: stable/rocky

commit 0471901f7a9e31587bace6c23d28e37e76743685
Author: Slawek Kaplonski <email address hidden>
Date: Mon Oct 25 10:59:24 2021 +0200

    Don't setup bridge controller if it is already set

    Setting new controller for bridge every time when neutron-ovs-agent
    is restarted or is doing full-sync may cause some short data plane
    connectivity loss and is not needed if same controller is already
    configured for the bridge.
    With this patch neutron-ovs-agent will first check if controller is
    configured for the bridge and if it's the same as what should be
    configured, it will skip setting it up.

    With this patch also protocols added to the bridge will be first checked
    if they aren't already there and only missing ones will be added if
    necessary.

    Setting of the connectivity mode and inactivity probe is
    always performed as this don't cause connectivity issues and is cheap
    so we can always ensure that those parameters are configured properly.

    Conflicts:
        neutron/agent/common/ovs_lib.py
        neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_bridge.py
        neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/openflow/native/ovs_bridge_test_base.py

    Closes-Bug: #1948642
    Change-Id: Idfa763df8c60d8ae46cd6351d1b6dc7d950b4c67
    (cherry picked from commit 11d166be683d36ba51e3f85ddea45cb0a1fcf8db)
    (cherry picked from commit b1eccf5a2deaf6d18ff18dfacfbcf7ef7fdb781f)
    (cherry picked from commit 11fe2bff17d8ad27c0c49037fcd36203f9baa32d)

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

This issue was fixed in the openstack/neutron 19.1.0 release.

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

This issue was fixed in the openstack/neutron 17.3.0 release.

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

This issue was fixed in the openstack/neutron 18.2.0 release.

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

Related fix proposed to branch: stable/ussuri
Review: https://review.opendev.org/c/openstack/neutron/+/826226

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

Related fix proposed to branch: stable/train
Review: https://review.opendev.org/c/openstack/neutron/+/826227

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

Reviewed: https://review.opendev.org/c/openstack/neutron/+/826226
Committed: https://opendev.org/openstack/neutron/commit/93d08bb575b879ccd584d71ba3ca97b75f542f98
Submitter: "Zuul (22348)"
Branch: stable/ussuri

commit 93d08bb575b879ccd584d71ba3ca97b75f542f98
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Tue Oct 26 09:21:33 2021 +0000

    [OVS] Workaround when OpenFlow controller restarts

    When a new OF controller is added or when new OF protocols are added to
    a bridge, the OF controller is restarted. When that happens, the os-ken
    ``OfctlService`` instance removes the OF controller datapath and waits
    for an update event that will add a new one. During this time no OF
    controllers (datapaths) will be registered and any request will be
    rejected with a ``InvalidDatapath`` exception.

    This patch is a temporary workaround that prevents any command from
    being executed just after those two described operations, providing
    time to OVS to send the OF updates.

    Conflicts:
            neutron/agent/common/ovs_lib.py

    Related-Bug: #1948642
    Change-Id: I03878a2e650d5f0d0167e0f7daa351b12bae8725
    (cherry picked from commit 0194856da19f0ce96b613968ab415821037f18d0)
    (cherry picked from commit f35a0a06e591ddb136d0f970684123ac6fd27fcd)

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

Reviewed: https://review.opendev.org/c/openstack/neutron/+/826227
Committed: https://opendev.org/openstack/neutron/commit/426df27ad38c32e6ee81fdc5ef14633776a8b8a4
Submitter: "Zuul (22348)"
Branch: stable/train

commit 426df27ad38c32e6ee81fdc5ef14633776a8b8a4
Author: Rodolfo Alonso Hernandez <email address hidden>
Date: Tue Oct 26 09:21:33 2021 +0000

    [OVS] Workaround when OpenFlow controller restarts

    When a new OF controller is added or when new OF protocols are added to
    a bridge, the OF controller is restarted. When that happens, the os-ken
    ``OfctlService`` instance removes the OF controller datapath and waits
    for an update event that will add a new one. During this time no OF
    controllers (datapaths) will be registered and any request will be
    rejected with a ``InvalidDatapath`` exception.

    This patch is a temporary workaround that prevents any command from
    being executed just after those two described operations, providing
    time to OVS to send the OF updates.

    Conflicts:
            neutron/agent/common/ovs_lib.py

    Related-Bug: #1948642
    Change-Id: I03878a2e650d5f0d0167e0f7daa351b12bae8725
    (cherry picked from commit 0194856da19f0ce96b613968ab415821037f18d0)
    (cherry picked from commit f35a0a06e591ddb136d0f970684123ac6fd27fcd)

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

This issue was fixed in the openstack/neutron 20.0.0.0rc1 release candidate.

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.

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

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

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

This issue was fixed in the openstack/neutron train-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.