← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1845354] [NEW] [FT] FdbInterfaceTestCase test cases failing when creating two VTI with the same VNI

 

Public bug reported:

In "FdbInterfaceTestCase" test cases (no namespace scenario), can happen
that two test cases are creating VXLAN interfaces in the kernel
namespace (VTI) in the same VTEP and the same destination port
(default=4789). In this case, the kernel will raise the exception
errno.EEXIST (file already exists).

In order to avoid this problem, a random VNI could be used when creating
the VXLAN interfaces.

LOGS:
[1]https://9722deaa313ebebb56dc-c08b881decb3106ff13d720dd4a26025.ssl.cf5.rackcdn.com/681846/5/check/neutron-functional-python27/c3dc48a/testr_results.html.gz

HOW TO TEST IT:
from neutron.agent.linux import ip_lib
from neutron.privileged.agent.linux import ip_lib as priv_ip_lib
ns_name = 'ns_test'
try:
    priv_ip_lib.remove_netns(ns_name)
except:
    pass
priv_ip_lib.create_netns(ns_name)
dev = 'device'
dev2 = 'device2'
dev_vxlan = 'device_vxlan'
dev_vxlan2 = 'device_vxlan2'
ip_wrapper = ip_lib.IPWrapper(ns_name)
ip_wrapper.add_dummy(dev)
ip_wrapper.add_dummy(dev2)
ip_device1 = ip_lib.IPDevice(dev, ns_name)
ip_device2 = ip_lib.IPDevice(dev2, ns_name)
ip_device1.link.set_up()
ip_device2.link.set_up()
ip_wrapper.add_vxlan(dev_vxlan, 100, dev=dev)
try:
    ip_wrapper.add_vxlan(dev_vxlan2, 100, dev=dev2)
except Exception as e:
    print(str(e))
priv_ip_lib.remove_netns(ns_name)

** Affects: neutron
     Importance: Undecided
     Assignee: Rodolfo Alonso (rodolfo-alonso-hernandez)
         Status: In Progress

** Changed in: neutron
     Assignee: (unassigned) => Rodolfo Alonso (rodolfo-alonso-hernandez)

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

Title:
  [FT] FdbInterfaceTestCase test cases failing when creating two VTI
  with the same VNI

Status in neutron:
  In Progress

Bug description:
  In "FdbInterfaceTestCase" test cases (no namespace scenario), can
  happen that two test cases are creating VXLAN interfaces in the kernel
  namespace (VTI) in the same VTEP and the same destination port
  (default=4789). In this case, the kernel will raise the exception
  errno.EEXIST (file already exists).

  In order to avoid this problem, a random VNI could be used when
  creating the VXLAN interfaces.

  LOGS:
  [1]https://9722deaa313ebebb56dc-c08b881decb3106ff13d720dd4a26025.ssl.cf5.rackcdn.com/681846/5/check/neutron-functional-python27/c3dc48a/testr_results.html.gz

  HOW TO TEST IT:
  from neutron.agent.linux import ip_lib
  from neutron.privileged.agent.linux import ip_lib as priv_ip_lib
  ns_name = 'ns_test'
  try:
      priv_ip_lib.remove_netns(ns_name)
  except:
      pass
  priv_ip_lib.create_netns(ns_name)
  dev = 'device'
  dev2 = 'device2'
  dev_vxlan = 'device_vxlan'
  dev_vxlan2 = 'device_vxlan2'
  ip_wrapper = ip_lib.IPWrapper(ns_name)
  ip_wrapper.add_dummy(dev)
  ip_wrapper.add_dummy(dev2)
  ip_device1 = ip_lib.IPDevice(dev, ns_name)
  ip_device2 = ip_lib.IPDevice(dev2, ns_name)
  ip_device1.link.set_up()
  ip_device2.link.set_up()
  ip_wrapper.add_vxlan(dev_vxlan, 100, dev=dev)
  try:
      ip_wrapper.add_vxlan(dev_vxlan2, 100, dev=dev2)
  except Exception as e:
      print(str(e))
  priv_ip_lib.remove_netns(ns_name)

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


Follow ups