-
Bug
-
Resolution: Done
-
None
-
unspecified
-
None
-
Operating System: Linux
Platform: PC
-
3052
When an interface is deleted, processRowUpdate (SouthboundHandler.java) tries to get the tenant network corresponding to this interface. But, in that implementation, the network will be null if the corresponding neutron port has been deleted before.
It seems working when the owner is compute:nova or network:dhcp (reference setup). My logs show processRowUpdate is always called before doNeutronPortDeleted (PortHandler.java).
It doesn't work in case of router_interface ports owned by l3-agent (my logs show that doNeutronPortDeleted is always called before). Network is null in processRowUpdate and then handleInterfaceDelete doesn't manage the flows to delete.
Referring to ml2 plugin.py, we can't assume that l3-agent removes the interface before the call from delete_port_postcommit (mechanism_odl.py). More generally, we can't think that the interface will be deleted before the http delete request.
A solution would be to manage network data in southbound delete events (eg. virtual tenant identifier) to handle interface delete. More disruptive solutions are possible too.