← Back to team overview

yahoo-eng-team team mailing list archive

[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