This seems to be related to the port_delete() method in ovs_neutron_agent.py:
def port_delete(self, context, **kwargs):
port_id = kwargs.get('port_id')
port = self.int_br.get_vif_port_by_id(port_id)
# If port exists, delete it
if port: self.int_br.delete_port(port.port_name)
This method was added and then removed and recently added again:
commit f87a74bfa83eeb859dfd047719622b54cdb5f68b
commit 294019139d575bd7144cfcc229c98c8497bfbf7c
commit d6a55c17360d1aa8ca91849199987ae71e8600ee
The method indiscriminately remove a port from the ovs bridge regardless if the port is added by the ovs agent or not. This is not right, and will result in tons of race conditions. Also have seen bug fixes that catch the exception and ignores it.
This seems to be related to the port_delete() method in ovs_neutron_ agent.py:
def port_delete(self, context, **kwargs): get('port_ id') br.get_ vif_port_ by_id(port_ id)
self. int_br. delete_ port(port. port_name)
port_id = kwargs.
port = self.int_
# If port exists, delete it
if port:
This method was added and then removed and recently added again: 59dfd047719622b 54cdb5f68b 7144cfcc229c98c 8497bfbf7c 8ca91849199987a e71e8600ee
commit f87a74bfa83eeb8
commit 294019139d575bd
commit d6a55c17360d1aa
The method indiscriminately remove a port from the ovs bridge regardless if the port is added by the ovs agent or not. This is not right, and will result in tons of race conditions. Also have seen bug fixes that catch the exception and ignores it.