← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1951149] Re: [OVN] If "chassis" register is deleted, "chassis_private" can have 0 "chassis" associated

 

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 <ralonsoh@xxxxxxxxxx>
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



References