Reviewed: https://review.opendev.org/c/openstack/neutron/+/818132 Committed: https://opendev.org/openstack/neutron/commit/f1a5511e9094d6aae7a61cd858c59c706033ca95 Submitter: "Zuul (22348)" Branch: master
commit f1a5511e9094d6aae7a61cd858c59c706033ca95 Author: Rodolfo Alonso Hernandez <[email protected]> Date: Wed Nov 17 17:33:29 2021 +0000 [OVN] Handle OVN agents when "Chassis" register is deleted If an "ovn-controller" ends not gracefully, the node "Chassis" and "Chassis_Private" registers will remain in the OVN SB database. Because there is no a mandatory procedure to delete the "Chassis" and "Chassis_Private" registers, the administrator can manually delete, from the OVN SB database, any register in any order. If the "Chassis" register is deleted and the Neutron server restarted, the updated "Chassis_Private" register will be read from the database. That won't contain the "Chassis" information as this register has been deleted. In this case, the ``NeutronAgent`` returns ``DeletedChassis``, an empty chassis register with no information. NOTE: the sequence of actions ("Chassis" register deletion, Neutron server restart) must be follow to reproduce this issue. If the "Chassis" register is deleted, the Neutron server OVN agent local cache won't update the stored information and will keep the previous value. It is when the Neutron server is restarted when the OVN agent local cache is retrieved again; at this time the "Chassis_Private" register won't have any related "Chassis" register. Closes-Bug: #1951149 Change-Id: I17aa53cea6aba8ea83187c99102a6f25fd33cfff ** 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/1951149 Title: [OVN] If "chassis" register is deleted, "chassis_private" can have 0 "chassis" associated Status in neutron: Fix Released Bug description: When a OVN SB "chassis" register is deleted, the "chassis_private" register will have no "chassis" associated. In a healthy environment, with the ovn-controller service running, if the host "chassis" register is deleted, the ovn-controller will create it again. If the ovn-controller didn't finish gracefully, it will leave both registers in the SB DB undeleted. To clean up the environment, an administrator should delete both registers ("chassis_private" and "chassis") from the SB DB and delete the OVN agents from Neutron. However, if those steps are done incorrectly, the Neutron server can return an exception. Steps to reproduce this error: - Kill the ovn-controller. - Delete the "chassis" register. - Restart the Neutron server. Neutron does not attend to "chassis" events. We need to restart the server to retrieve the "chassis_private" SB register with "chassis=[]" [1] - List the network agents. This method [2] will return L50, as a "chassis" register. This is incorrect and will fail with [3]. [1]https://paste.opendev.org/show/811040/ [2]https://github.com/openstack/neutron/blob/83c6d23308c475e2cd7f1af858e26d14d0cba8fb/neutron/plugins/ml2/drivers/ovn/agent/neutron_agent.py#L44-L50 [2]https://paste.opendev.org/show/811041/ To manage notifications about this bug go to: https://bugs.launchpad.net/neutron/+bug/1951149/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

