Activity log for bug #1845354

Date Who What changed Old value New value Message
2019-09-25 16:18:50 Rodolfo Alonso bug added bug
2019-09-25 16:19:10 Rodolfo Alonso neutron: assignee Rodolfo Alonso (rodolfo-alonso-hernandez)
2019-09-25 16:25:14 OpenStack Infra neutron: status New In Progress
2019-09-25 16:28:32 Rodolfo Alonso 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. How to test this: 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) 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)
2019-09-26 00:55:03 OpenStack Infra neutron: status In Progress Fix Released
2019-09-26 03:10:50 Steve Ruan bug added subscriber Steve Ruan
2019-10-11 13:43:09 Bernard Cafarelli tags neutron-proactive-backport-potential
2019-10-12 00:41:43 OpenStack Infra tags neutron-proactive-backport-potential in-stable-train neutron-proactive-backport-potential