yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #94829
[Bug 2085543] Re: [OVN] Port device_owner is not set in the Trunk subport
Reviewed: https://review.opendev.org/c/openstack/neutron/+/933836
Committed: https://opendev.org/openstack/neutron/commit/c0bdb0c8a33286acb4d44ad865f0000309fc79b6
Submitter: "Zuul (22348)"
Branch: master
commit c0bdb0c8a33286acb4d44ad865f0000309fc79b6
Author: Rodolfo Alonso Hernandez <ralonsoh@xxxxxxxxxx>
Date: Wed Oct 30 18:08:15 2024 +0000
[OVN] Check LSP.up status before setting the port host info
Before executing updating the Logical_Swith_Port host information, it
is needed to check the current status of the port. If it doesn't match
with the event calling this update, the host information is not updated.
Closes-Bug: #2085543
Change-Id: I92afb190375caf27c815f9fe1cb627e87c49d4ca
** Changed in: neutron
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/2085543
Title:
[OVN] Port device_owner is not set in the Trunk subport
Status in neutron:
Fix Released
Bug description:
This issue was found in the test
``neutron_tempest_plugin.scenario.test_trunk.TrunkTest.test_trunk_subport_lifecycle``.
The subport "463f7c45-3c06-4340-a509-e96b2faae525" [1] is created and
then assigned to a trunk. When the port is assigned to the trunk, the
device owner is not updated to "trunk:subport"
UPDATE: the description is not accurate. The problem is that the port
deactivation is executed when the port activation didn't finish. When
the port is activated (the VM starts and binds the parent port and
subports), the method ``set_port_status_up`` is called from the event
``LogicalSwitchPortUpdateUpEvent``. The problem is that the event
actions are executed in a loop thread
(``RowEventHandler.notify_loop``) that is not synchronous with the API
call. The API call exists before the ``set_port_status_up`` finishes.
The tempest test checks that the subport is ACTIVE and proceeds to
unbind it (remove from the trunk). That removes the port device_owner
and binding host. That's a problem because the method
``set_port_status_up`` is still being executed and needs the "older"
values (device_owner="trunk:subport").
In a nutshell, this is a race condition because the OVN event
processing is done asynchronously to the API call.
Logs:
https://f918f4eca95000e5dd6c-6bcda3a769a6c31ee12f465dd60bb9a2.ssl.cf5.rackcdn.com/933210/3/check/neutron-
tempest-plugin-ovn-10/43a1557/testr_results.html
[1]https://paste.opendev.org/show/bzmtiytDBKKkgi4IgZ15/
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/2085543/+subscriptions
References