← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1328128] [NEW] In ovs agent, when a port is added and then removed in a short time, this port may lose its vlan tag.

 

Public bug reported:

When a port is added, ovs agent runs scan_ports to get all changed
ports, so it will be in port_info['current'] and port_info['added'].
Then this port is removed (by nova or ohters) before
treat_devices_added_or_updated called, means
self.int_br.get_vif_port_by_id(device) returns None and for loop just
continues, no treat_vif_port called and this port is not in
lvm.vif_ports, however this port is still in "current ports" and saved
in reg_ports before next scan. When we add this port back again, it
would not be treated as added since it's in reg_ports and not treated as
updated since it's not in any lvm.vif_ports, this port losts vlan tag
permanently util we remove it again.

I think the fix is simple, if self.int_br.get_vif_port_by_id(device)
cannot get port, just resync next time.

** Affects: neutron
     Importance: Undecided
         Status: New


** Tags: ovs

** Description changed:

  When a port is added, ovs agent runs scan_ports to get all changed
  ports, so it will be in port_info['current'] and port_info['added'].
  Then this port is removed (by nova or ohters) before
  treat_devices_added_or_updated called, means
  self.int_br.get_vif_port_by_id(device) returns None and for loop just
  continues, no treat_vif_port called and this port is not in
  lvm.vif_ports, however this port is still in "current ports" and saved
  in reg_ports before next scan. When we add this port back again, it
  would not be treated as added since it's in reg_ports and not treated as
  updated since it's not in any lvm.vif_ports, this port losts vlan tag
  permanently util we remove it again.
  
  I think the fix is simple, if self.int_br.get_vif_port_by_id(device)
- cannot get port, just resync.
+ cannot get port, just resync next time.

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1328128

Title:
  In ovs agent, when a port is added and then removed in a short time,
  this port may lose its vlan tag.

Status in OpenStack Neutron (virtual network service):
  New

Bug description:
  When a port is added, ovs agent runs scan_ports to get all changed
  ports, so it will be in port_info['current'] and port_info['added'].
  Then this port is removed (by nova or ohters) before
  treat_devices_added_or_updated called, means
  self.int_br.get_vif_port_by_id(device) returns None and for loop just
  continues, no treat_vif_port called and this port is not in
  lvm.vif_ports, however this port is still in "current ports" and saved
  in reg_ports before next scan. When we add this port back again, it
  would not be treated as added since it's in reg_ports and not treated
  as updated since it's not in any lvm.vif_ports, this port losts vlan
  tag permanently util we remove it again.

  I think the fix is simple, if self.int_br.get_vif_port_by_id(device)
  cannot get port, just resync next time.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1328128/+subscriptions


Follow ups

References