Uploaded image for project: 'ovsdb'
  1. ovsdb
  2. OVSDB-146

race condition between northbound and southbound events

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • None
    • unspecified
    • openstack.net-virt
    • 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.

            Unassigned Unassigned
            ollivier.cedric@gmail.com Cédric Ollivier
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: