Comment 1 for bug 1448148

Revision history for this message
Baodong (Robert) Li (baoli) wrote :

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.