Reviewed: https://review.opendev.org/c/openstack/neutron/+/944387 Committed: https://opendev.org/openstack/neutron/commit/d52c22bbac140170aad60b231d648102767cb2f4 Submitter: "Zuul (22348)" Branch: master
commit d52c22bbac140170aad60b231d648102767cb2f4 Author: Rodolfo Alonso Hernandez <ralon...@redhat.com> Date: Fri Mar 14 04:40:53 2025 +0000 [OVN] Do not delete twice the agent from the cache When a delete agent command is issued, the API worker that attends the API call, it issues an OVN SB ``SB_Global`` event to inform any other worker about the deletion of the agent, thus they can delete the agent from their local OVN agent cache. The problem is that this event is also received by the worker that is sending it. Because the call that is generating the event is also deleting the agent [1], this worker tries to delete the agent twice; the second time, it generates a KeyError exception in the local OVN agent cache. The code added in [1] should be deleted. [1]https://review.opendev.org/c/openstack/neutron/+/883607/3/neutron/plugins/ml2/drivers/ovn/mech_driver/mech_driver.py#1421 Closes-Bug: #2102645 Change-Id: Ie391af5a3b226cbd33f7162a3c970d636fcdf1da ** 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/2102645 Title: [OVN] OVN agent deletion raises an error in the agent cache Status in neutron: Fix Released Bug description: When an OVN agent is deleted, the following exception is raised: """ ERROR neutron_lib.callbacks.manager Traceback (most recent call last): ERROR neutron_lib.callbacks.manager File "/opt/stack/neutron-lib/neutron_lib/callbacks/manager.py", line 189, in _notify_loop ERROR neutron_lib.callbacks.manager callback.method(resource, event, trigger, payload=payload) ERROR neutron_lib.callbacks.manager File "/opt/stack/neutron/neutron/db/agentschedulers_db.py", line 494, in auto_schedule_new_network_segments ERROR neutron_lib.callbacks.manager segments = segment_plugin.get_segments( ERROR neutron_lib.callbacks.manager AttributeError: 'NoneType' object has no attribute 'get_segments' ERROR neutron_lib.callbacks.manager """ The problem is that the worker that receives the command to delete the agent is deleting the agent cache entry in this call, in ``OVNMechanismDriver.delete_agent``. This method is also generating an OVN SB event writing in the ``SB_Global`` SB table to inform to other agents about this deletion. When this event is received, each worker updates its own local agent cache correspondingly. The problem is that the same worker that is issuing this event is also receiving it, and thus the worker tries to delete the agent cache twice. That was added in [1] but is not needed. NOTE: backport the fix up to 2023.2 (same as [1]). [1]https://review.opendev.org/c/openstack/neutron/+/883607/3/neutron/plugins/ml2/drivers/ovn/mech_driver/mech_driver.py#1421 To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/2102645/+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