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:
More specifically, the DELETE on `PortBindingUpdateVirtualPortsEvent` is clearing out the binding details, so on the next maintenance run, Neutron kils it off.
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:
``` backend. ovs_idl. event [None req-c92127e4- 2312-41be- 9705-97f45cfcd3 74 - - - - - -] Matched UPDATE: PortBindingChas sisEvent( events= ('update' ,), table=' Port_Binding' , conditions= (('type' , '=', 'chassisredirec t'),), old_conditions= None), priority=20 to row=Port_ Binding( parent_ port=[' 7703365a- b55a-4856- a223-8ee5115e84 00'], 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-54a9a1aca6 1f, encap=[], gateway_chassis=[], external_ ids={'name' : 'compute- fa2ffcfd- a6d6-4baa- 918e-cb5c67823f 6a-20', 'neutron:cidrs': '', 'neutron: device_ id': '', 'neutron: device_ owner': 'trunk:subport', 'neutron: network_ name': 'neutron- 16b4d11e- 6734-4058- 814e-7d22c4c9a8 da', 'neutron: port_name' : 'compute- fa2ffcfd- a6d6-4baa- 918e-cb5c67823f 6a-20', 'neutron: project_ id': '4b633c451ac742 33be3721a363527 5e5', '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-1cd6a778bd 28, mirror_rules=[]) old=Port_ Binding( chassis= [], up=[False]) matches /var/lib/ openstack/ lib/python3. 10/site- packages/ ovsdbapp/ backend/ ovs_idl/ event.py: 43[00m backend. ovs_idl. event [None req-dae54ec1- 7359-47ff- bf53-34cdfcb55f df - - - - - -] Matched DELETE: PortBindingUpda teVirtualPortsE vent(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-54a9a1aca6 1f, encap=[], gateway_chassis=[], external_ ids={'name' : 'compute- fa2ffcfd- a6d6-4baa- 918e-cb5c67823f 6a-20', 'neutron:cidrs': '', 'neutron: device_ id': '', 'neutron: device_ owner': '', 'neutron: network_ name': 'neutron- 16b4d11e- 6734-4058- 814e-7d22c4c9a8 da', 'neutron: port_name' : 'compute- fa2ffcfd- a6d6-4baa- 918e-cb5c67823f 6a-20', 'neutron: project_ id': '4b633c451ac742 33be3721a363527 5e5', '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-1cd6a778bd 28, mirror_rules=[]) old= matches /var/lib/ openstack/ lib/python3. 10/site- packages/ ovsdbapp/ backend/ ovs_idl/ event.py: 43[00m
2023-09-26 05:54:36.201 11 DEBUG ovsdbapp.
2023-09-26 05:54:36.259 14 DEBUG ovsdbapp.
```
More specifically, the DELETE on `PortBindingUpd ateVirtualPorts Event` is clearing out the binding details, so on the next maintenance run, Neutron kils it off.