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 <ralon...@redhat.com> 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 -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp