Comment 21 for bug 2024160

Revision history for this message
Mohammed Naser (mnaser) wrote :

So I think the root cause is these events are causing the data to be cleared in the Neutron database, which then result in the port being removed after 5 minutes on the next maintenance cycle:

```
2023-09-26 05:54:36.201 11 DEBUG ovsdbapp.backend.ovs_idl.event [None req-c92127e4-2312-41be-9705-97f45cfcd374 - - - - - -] Matched UPDATE: PortBindingChassisEvent(events=('update',), table='Port_Binding', conditions=(('type', '=', 'chassisredirect'),), old_conditions=None), priority=20 to row=Port_Binding(parent_port=['7703365a-b55a-4856-a223-8ee5115e8400'], mac=['unknown'], chassis=[<ovs.db.idl.Row object at 0x7f3fe8ae89d0>], options={'requested-chassis': ''}, ha_chassis_group=[], type=, additional_encap=[], tag=[20], requested_additional_chassis=[], up=[True], tunnel_key=4, requested_chassis=[], additional_chassis=[], logical_port=34c341e5-3eb6-47d7-bc96-54a9a1aca61f, encap=[], gateway_chassis=[], external_ids={'name': 'compute-fa2ffcfd-a6d6-4baa-918e-cb5c67823f6a-20', 'neutron:cidrs': '', 'neutron:device_id': '', 'neutron:device_owner': 'trunk:subport', 'neutron:network_name': 'neutron-16b4d11e-6734-4058-814e-7d22c4c9a8da', 'neutron:port_name': 'compute-fa2ffcfd-a6d6-4baa-918e-cb5c67823f6a-20', 'neutron:project_id': '4b633c451ac74233be3721a3635275e5', 'neutron:revision_number': '2', 'neutron:security_group_ids': '', 'neutron:subnet_pool_addr_scope4': '', 'neutron:subnet_pool_addr_scope6': ''}, nat_addresses=[], virtual_parent=[], port_security=[], datapath=dc18c51f-d011-41ff-8c0e-1cd6a778bd28, mirror_rules=[]) old=Port_Binding(chassis=[], up=[False]) matches /var/lib/openstack/lib/python3.10/site-packages/ovsdbapp/backend/ovs_idl/event.py:43
2023-09-26 05:54:36.259 14 DEBUG ovsdbapp.backend.ovs_idl.event [None req-dae54ec1-7359-47ff-bf53-34cdfcb55fdf - - - - - -] Matched DELETE: PortBindingUpdateVirtualPortsEvent(events=('update', 'delete'), table='Port_Binding', conditions=None, old_conditions=None), priority=20 to row=Port_Binding(parent_port=[], mac=['unknown'], chassis=[], options={'requested-chassis': ''}, ha_chassis_group=[], type=, additional_encap=[], tag=[], requested_additional_chassis=[], up=[False], tunnel_key=4, requested_chassis=[], additional_chassis=[], logical_port=34c341e5-3eb6-47d7-bc96-54a9a1aca61f, encap=[], gateway_chassis=[], external_ids={'name': 'compute-fa2ffcfd-a6d6-4baa-918e-cb5c67823f6a-20', 'neutron:cidrs': '', 'neutron:device_id': '', 'neutron:device_owner': '', 'neutron:network_name': 'neutron-16b4d11e-6734-4058-814e-7d22c4c9a8da', 'neutron:port_name': 'compute-fa2ffcfd-a6d6-4baa-918e-cb5c67823f6a-20', 'neutron:project_id': '4b633c451ac74233be3721a3635275e5', 'neutron:revision_number': '1', 'neutron:security_group_ids': '', 'neutron:subnet_pool_addr_scope4': '', 'neutron:subnet_pool_addr_scope6': ''}, nat_addresses=[], virtual_parent=[], port_security=[], datapath=dc18c51f-d011-41ff-8c0e-1cd6a778bd28, mirror_rules=[]) old= matches /var/lib/openstack/lib/python3.10/site-packages/ovsdbapp/backend/ovs_idl/event.py:43
```

More specifically, the DELETE on `PortBindingUpdateVirtualPortsEvent` is clearing out the binding details, so on the next maintenance run, Neutron kils it off.