yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #38669
[Bug 1497444] [NEW] Functional tests possibly leaving a network namespace around
Public bug reported:
After running the functional tests (dvsm-functional) I noticed I was
unable to run 'ip netns', it was giving me an error something like:
<MagicMock name='_get_ns_name()' id='140702292990672'>@agent1
I was confused until I noticed a failure in a review:
| ==============================
| Failed 1 tests - output below:
| ==============================
| neutron.tests.functional.agent.test_l3_agent.L3HATestFramework.test_ha_router_failover
| --------------------------------------------------------------------------------------
|
| Captured traceback:
| ~~~~~~~~~~~~~~~~~~~
| Traceback (most recent call last):
| File "neutron/tests/functional/agent/test_l3_agent.py", line 795, in test_ha_router_failover
| router1 = self.manage_router(self.agent, router_info)
| File "neutron/tests/functional/agent/test_l3_agent.py", line 133, in manage_router
| agent._process_added_router(router)
| File "neutron/agent/l3/agent.py", line 446, in _process_added_router
| self._router_added(router['id'], router)
| File "neutron/agent/l3/agent.py", line 335, in _router_added
| ri.initialize(self.process_monitor)
| File "neutron/agent/l3/ha_router.py", line 87, in initialize
| self.ha_network_added()
| File "neutron/agent/l3/ha_router.py", line 147, in ha_network_added
| prefix=HA_DEV_PREFIX)
| File "neutron/agent/linux/interface.py", line 252, in plug
| bridge, namespace, prefix)
| File "neutron/agent/linux/interface.py", line 346, in plug_new
| namespace_obj = ip.ensure_namespace(namespace)
| File "neutron/agent/linux/ip_lib.py", line 164, in ensure_namespace
| ip = self.netns.add(name)
| File "neutron/agent/linux/ip_lib.py", line 794, in add
| self._as_root([], ('add', name), use_root_namespace=True)
| File "neutron/agent/linux/ip_lib.py", line 281, in _as_root
| use_root_namespace=use_root_namespace)
| File "neutron/agent/linux/ip_lib.py", line 81, in _as_root
| log_fail_as_error=self.log_fail_as_error)
| File "neutron/agent/linux/ip_lib.py", line 90, in _execute
| log_fail_as_error=log_fail_as_error)
| File "neutron/agent/linux/utils.py", line 160, in execute
| raise RuntimeError(m)
| RuntimeError:
| Command: ['ip', 'netns', 'add', "<MagicMock name='_get_ns_name()' id='140702292990672'>@agent1"]
| Exit code: 1
| Stdin:
| Stdout:
| Stderr: Cannot not create namespace file "/var/run/netns/<MagicMock name='_get_ns_name()' id='140702292990672'>@agent1": File exists
That is from http://logs.openstack.org/06/225206/2/check/gate-neutron-
dsvm-functional/9ca87f0/console.html
So it looks like a functional test is either creating a network
namespace and not cleaning it up, or doing something else horribly
wrong.
There is a test at cmd/test_netns_cleanup.py that uses mock and
namespaces, but it wasn't obvious to me that it was the culprit.
** Affects: neutron
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1497444
Title:
Functional tests possibly leaving a network namespace around
Status in neutron:
New
Bug description:
After running the functional tests (dvsm-functional) I noticed I was
unable to run 'ip netns', it was giving me an error something like:
<MagicMock name='_get_ns_name()' id='140702292990672'>@agent1
I was confused until I noticed a failure in a review:
| ==============================
| Failed 1 tests - output below:
| ==============================
| neutron.tests.functional.agent.test_l3_agent.L3HATestFramework.test_ha_router_failover
| --------------------------------------------------------------------------------------
|
| Captured traceback:
| ~~~~~~~~~~~~~~~~~~~
| Traceback (most recent call last):
| File "neutron/tests/functional/agent/test_l3_agent.py", line 795, in test_ha_router_failover
| router1 = self.manage_router(self.agent, router_info)
| File "neutron/tests/functional/agent/test_l3_agent.py", line 133, in manage_router
| agent._process_added_router(router)
| File "neutron/agent/l3/agent.py", line 446, in _process_added_router
| self._router_added(router['id'], router)
| File "neutron/agent/l3/agent.py", line 335, in _router_added
| ri.initialize(self.process_monitor)
| File "neutron/agent/l3/ha_router.py", line 87, in initialize
| self.ha_network_added()
| File "neutron/agent/l3/ha_router.py", line 147, in ha_network_added
| prefix=HA_DEV_PREFIX)
| File "neutron/agent/linux/interface.py", line 252, in plug
| bridge, namespace, prefix)
| File "neutron/agent/linux/interface.py", line 346, in plug_new
| namespace_obj = ip.ensure_namespace(namespace)
| File "neutron/agent/linux/ip_lib.py", line 164, in ensure_namespace
| ip = self.netns.add(name)
| File "neutron/agent/linux/ip_lib.py", line 794, in add
| self._as_root([], ('add', name), use_root_namespace=True)
| File "neutron/agent/linux/ip_lib.py", line 281, in _as_root
| use_root_namespace=use_root_namespace)
| File "neutron/agent/linux/ip_lib.py", line 81, in _as_root
| log_fail_as_error=self.log_fail_as_error)
| File "neutron/agent/linux/ip_lib.py", line 90, in _execute
| log_fail_as_error=log_fail_as_error)
| File "neutron/agent/linux/utils.py", line 160, in execute
| raise RuntimeError(m)
| RuntimeError:
| Command: ['ip', 'netns', 'add', "<MagicMock name='_get_ns_name()' id='140702292990672'>@agent1"]
| Exit code: 1
| Stdin:
| Stdout:
| Stderr: Cannot not create namespace file "/var/run/netns/<MagicMock name='_get_ns_name()' id='140702292990672'>@agent1": File exists
That is from http://logs.openstack.org/06/225206/2/check/gate-neutron-
dsvm-functional/9ca87f0/console.html
So it looks like a functional test is either creating a network
namespace and not cleaning it up, or doing something else horribly
wrong.
There is a test at cmd/test_netns_cleanup.py that uses mock and
namespaces, but it wasn't obvious to me that it was the culprit.
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1497444/+subscriptions
Follow ups