diff --git a/doc/source/admin/ovn/l3_scheduler.rst b/doc/source/admin/ovn/l3_scheduler.rst index 3d6e5ae5f68..90dd33b67d5 100644 --- a/doc/source/admin/ovn/l3_scheduler.rst +++ b/doc/source/admin/ovn/l3_scheduler.rst @@ -79,6 +79,16 @@ this ``Chassis`` and could be transmitting. If the highest ``Gateway_Chassis`` is changed, the ``Logical_Router_Port`` is bound to the new ``Chassis`` and could break any active sessions. +.. note:: + + Neutron does not support adding or modifying the ``Gateway_Chassis`` + registers with the "ovn-nbctl lrp-set-gateway-chassis" or the + "ovn-nbctl set" commands. Operators should not use these commands to + modify the ``Gateway_Chassis`` registers because Neutron will not be able + to re-schedule the corresponding ``Logical_Router_Port`` properly. + +.. end + Availability Zones (AZ) distribution ------------------------------------ diff --git a/doc/source/admin/ovn/troubleshooting.rst b/doc/source/admin/ovn/troubleshooting.rst index dab9ca04c4c..1e93d83fb18 100644 --- a/doc/source/admin/ovn/troubleshooting.rst +++ b/doc/source/admin/ovn/troubleshooting.rst @@ -44,6 +44,8 @@ size of geneve header compared to other common tunneling protocols (VXLAN). If you are using VM's as compute nodes make sure that you either lower the MTU size on the virtual interface or enable fragmentation on it. +.. _duplicated_ovn_agents: + Duplicated or deleted OVN agents -------------------------------- @@ -118,3 +120,16 @@ list will present the corresponding agents with the following message: administrator should manually delete the orphaned OVN Southbound database register. Neutron will receive this event and will delete the associated OVN agents. + +Recovering from an OVN Chassis crash +------------------------------------ + +If the "ovn-controller" process, running on an OVN Chassis host, is killed +without being gracefully stopped or the host running the "ovn-controller" +process crashed, the corresponding "Chassis" and "Chassis_Private" registers +are not deleted. Before restarting the "ovn-controller" or "ovn-controller" +host after the crash, the administrator should follow the procedure described +in the :ref:`Duplicated or deleted OVN agents` section, +and manually delete stale "Chassis" and "Chassis_Private" registers. Neutron +will be notified of the deletion and will remove the corresponding +"Gateway_Chassis" registers in the OVN Northbound database. diff --git a/neutron/services/ovn_l3/plugin.py b/neutron/services/ovn_l3/plugin.py index c1fd1382598..ac209fd3a03 100644 --- a/neutron/services/ovn_l3/plugin.py +++ b/neutron/services/ovn_l3/plugin.py @@ -278,8 +278,8 @@ def schedule_unhosted_gateways(self, event_from_chassis=None): try: ports_impacted.append(utils.get_port_id_from_gwc_row(gwc)) except AttributeError: - # Malformed GWC format. - pass + LOG.warning('Malformed Gateway_Chassis register name ' + 'format: %s', gwc.name) port_physnet_dict = { k: v for k, v in port_physnet_dict.items()