I experienced this failure these days and my unittest always failed at case
"neutron.tests.unit.ml2.drivers.cisco.nexus.test_cisco_mech.TestCiscoBasicGet.test_single_get_admin".
After debugging, I found this bug is caused by ml2 type_drivers entry points 
not found.

way to reproduce:
1. cd neutron
2. rm -rf neutron.egg-info
3. ./run_tests.sh  
neutron.tests.unit.ml2.drivers.cisco.nexus.test_cisco_mech.TestCiscoBasicGet.test_single_get_admin

...
running=OS_STDOUT_CAPTURE=1 OS_STDERR_CAPTURE=1 OS_LOG_CAPTURE=1 
${PYTHON:-python} -m subunit.run discover -t ./ 
${OS_TEST_PATH:-./neutron/tests/unit} --list
running=OS_STDOUT_CAPTURE=1 OS_STDERR_CAPTURE=1 OS_LOG_CAPTURE=1 
${PYTHON:-python} -m subunit.run discover -t ./ 
${OS_TEST_PATH:-./neutron/tests/unit}  --load-list /tmp/tmp2MIKLY

process-returncode
process-returncode ... FAIL
math domain error
Slowest Tests
neutron.tests.unit.ml2.drivers.cisco.nexus.test_cisco_mech.TestCiscoBasicGet.test_single_get_admin
neutron.tests.unit.ml2.drivers.cisco.nexus.test_cisco_mech.TestCiscoBasicGet.test_single_get_admin
 ... FAIL

======================================================================
FAIL: process-returncode
process-returncode
----------------------------------------------------------------------
_StringException: Binary content:
  traceback (test/plain; charset="utf8")


======================================================================
FAIL: 
neutron.tests.unit.ml2.drivers.cisco.nexus.test_cisco_mech.TestCiscoBasicGet.test_single_get_admin
neutron.tests.unit.ml2.drivers.cisco.nexus.test_cisco_mech.TestCiscoBasicGet.test_single_get_admin
----------------------------------------------------------------------
_StringException

----------------------------------------------------------------------
Ran 2 tests in 25.174s

FAILED (failures=2)

way to fix:
1. python setup.py egg_info
2. ./run_tests.sh  
neutron.tests.unit.ml2.drivers.cisco.nexus.test_cisco_mech.TestCiscoBasicGet.test_single_get_admin

...
running=OS_STDOUT_CAPTURE=1 OS_STDERR_CAPTURE=1 OS_LOG_CAPTURE=1 
${PYTHON:-python} -m subunit.run discover -t ./ 
${OS_TEST_PATH:-./neutron/tests/unit} --list
running=OS_STDOUT_CAPTURE=1 OS_STDERR_CAPTURE=1 OS_LOG_CAPTURE=1 
${PYTHON:-python} -m subunit.run discover -t ./ 
${OS_TEST_PATH:-./neutron/tests/unit}  --load-list /tmp/tmp1bq15x
neutron.tests.unit.ml2.drivers.cisco.nexus.test_cisco_mech.TestCiscoBasicGet.test_single_get_admin
neutron.tests.unit.ml2.drivers.cisco.nexus.test_cisco_mech.TestCiscoBasicGet.test_single_get_admin
 ... ok
Slowest Tests
Test id                                                                         
                    Runtime (s)
--------------------------------------------------------------------------------------------------
  -----------
neutron.tests.unit.ml2.drivers.cisco.nexus.test_cisco_mech.TestCiscoBasicGet.test_single_get_admin
  1.362

----------------------------------------------------------------------
Ran 1 test in 25.259s

OK


The reason is that when testcase setup Ml2Plugin, Ml2Plugin will initialize 
TypeManager()(https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/plugin.py#L105).
 Then TypeManager() will loaded type drivers using 
stevedore.named.NamedExtensionManager which invokes entry 
points(https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/managers.py#L38).
 But without .egg-info metadata directory, TypeManager cannot find entry points 
for ml2 type drivers, the testcase failed at setUp(), the unittest process exit 
without any detailed error information.

This issue shoud affect any testcases which invoke python-stevedore to
load plugins.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1204456

Title:
  neutron ml2 plugin test failures

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

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to