← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1458709] Re: ovs agent can't startup in some abnormal condition

 

** Changed in: neutron
       Status: Fix Committed => Fix Released

** Changed in: neutron
    Milestone: None => liberty-1

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

Title:
  ovs agent can't startup in some abnormal condition

Status in OpenStack Neutron (virtual network service):
  Fix Released

Bug description:
  when ovs agent restart, it will restore the local vlan map in function
  '_restore_local_vlan_map',

      def _restore_local_vlan_map(self):
          cur_ports = self.int_br.get_vif_ports()
          for port in cur_ports:
              local_vlan_map = self.int_br.db_get_val("Port", port.port_name,
                                                      "other_config")
              local_vlan = self.int_br.db_get_val("Port", port.port_name, "tag")
              net_uuid = local_vlan_map.get('net_uuid')
              if (net_uuid and net_uuid not in self.local_vlan_map
                  and local_vlan != DEAD_VLAN_TAG):
                  self.provision_local_vlan(local_vlan_map['net_uuid'],
                               local_vlan_map['network_type'],
                             local_vlan_map['physical_network'],
                             local_vlan_map['segmentation_id'],
                                 local_vlan)

  in some abnormal condition, if a device does not be set tag in ovsdb,
  the 'self.int_br.db_get_val("Port", port.port_name, "tag")' will
  return a empty list, so in function 'provision_local_vlan' will raise
  exception:

      def provision_local_vlan(self, net_uuid, network_type, physical_network,
                               segmentation_id,local_vlan=None:
          lvm = self.local_vlan_map.get(net_uuid)
          if lvm:
              lvid = lvm.vlan
          else:
              if local_vlan in self.available_local_vlans:
                  lvid = local_vlan
                  self.available_local_vlans.remove(local_vlan)

  this line will raise exception 'if local_vlan in
  self.available_local_vlans'

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


References