py36 unit test cases fails

Bug #1854051 reported by LIU Yulong
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Won't Fix
Critical
Unassigned

Bug Description

Branch: master
heads:
2a8b70d Merge "Update security group rule if port range is all ports"
fd5e292 Merge "Remove neutron-grenade job from Neutron CI queues"
f6aef3c Merge "Switch neutron-tempest-with-os-ken-master job to zuul v3"
2174bb0 Merge "Remove old, legacy experimental CI jobs"
8672029 Merge "HA race condition test for DHCP scheduling"
71e3cb0 Merge "Parameter 'fileds' value is not used in _get_subnets"
b5e5082 Merge "Update networking-bgpvpn and networking-bagpipe liuetenants"
3c1139c Merge "Make network support read and write separation"
67b613b Merge "NetcatTester.stop_processes skip "No such process" exception"
185efb3 Update networking-bgpvpn and networking-bagpipe liuetenants
728d8ee NetcatTester.stop_processes skip "No such process" exception

Tox env was definitely upgraded to meet the requirements.txt and test-requirements.txt

Exceptions:
==============================
Failed 2 tests - output below:
==============================

neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.test_ovs_neutron_agent.TestOvsDvrNeutronAgentOSKen.test_get_dvr_mac_address_exception
----------------------------------------------------------------------------------------------------------------------------------------------

Captured traceback:
~~~~~~~~~~~~~~~~~~~
    b'Traceback (most recent call last):'
    b' File "/home/yulong/github/neutron/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_dvr_neutron_agent.py", line 164, in get_dvr_mac_address'
    b' self.get_dvr_mac_address_with_retry()'
    b' File "/home/yulong/github/neutron/.tox/py36/lib/python3.6/site-packages/osprofiler/profiler.py", line 160, in wrapper'
    b' result = f(*args, **kwargs)'
    b' File "/home/yulong/github/neutron/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_dvr_neutron_agent.py", line 184, in get_dvr_mac_address_with_retry'
    b' self.context, self.host)'
    b' File "/home/yulong/github/neutron/.tox/py36/lib/python3.6/site-packages/mock/mock.py", line 1092, in __call__'
    b' return _mock_self._mock_call(*args, **kwargs)'
    b' File "/home/yulong/github/neutron/.tox/py36/lib/python3.6/site-packages/mock/mock.py", line 1143, in _mock_call'
    b' raise effect'
    b'oslo_messaging.rpc.client.RemoteError: Remote error: None None'
    b'None.'
    b''
    b'During handling of the above exception, another exception occurred:'
    b''
    b'Traceback (most recent call last):'
    b' File "/home/yulong/github/neutron/neutron/tests/base.py", line 182, in func'
    b' return f(self, *args, **kwargs)'
    b' File "/home/yulong/github/neutron/neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_ovs_neutron_agent.py", line 3614, in test_get_dvr_mac_address_exception'
    b' self.agent.dvr_agent.get_dvr_mac_address()'
    b' File "/home/yulong/github/neutron/.tox/py36/lib/python3.6/site-packages/osprofiler/profiler.py", line 160, in wrapper'
    b' result = f(*args, **kwargs)'
    b' File "/home/yulong/github/neutron/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_dvr_neutron_agent.py", line 169, in get_dvr_mac_address'
    b" 'message: %s', e)"
    b' File "/usr/lib64/python3.6/logging/__init__.py", line 1653, in error'
    b' self.log(ERROR, msg, *args, **kwargs)'
    b' File "/usr/lib64/python3.6/logging/__init__.py", line 1674, in log'
    b' self.logger.log(level, msg, *args, **kwargs)'
    b' File "/usr/lib64/python3.6/logging/__init__.py", line 1374, in log'
    b' self._log(level, msg, args, **kwargs)'
    b' File "/usr/lib64/python3.6/logging/__init__.py", line 1443, in _log'
    b' exc_info, func, extra, sinfo)'
    b' File "/usr/lib64/python3.6/logging/__init__.py", line 1413, in makeRecord'
    b' sinfo)'
    b' File "/usr/lib64/python3.6/logging/__init__.py", line 277, in __init__'
    b' if (args and len(args) == 1 and isinstance(args[0], collections.Mapping)'
    b' File "/home/yulong/github/neutron/.tox/py36/lib64/python3.6/abc.py", line 193, in __instancecheck__'
    b' return cls.__subclasscheck__(subclass)'
    b' File "/home/yulong/github/neutron/.tox/py36/lib64/python3.6/abc.py", line 228, in __subclasscheck__'
    b' if issubclass(subclass, scls):'
    b' File "/home/yulong/github/neutron/.tox/py36/lib64/python3.6/abc.py", line 228, in __subclasscheck__'
    b' if issubclass(subclass, scls):'
    b' File "/usr/lib64/python3.6/typing.py", line 1154, in __subclasscheck__'
    b' return super().__subclasscheck__(cls)'
    b' File "/home/yulong/github/neutron/.tox/py36/lib64/python3.6/abc.py", line 209, in __subclasscheck__'
    b' ok = cls.__subclasshook__(subclass)'
    b' File "/usr/lib64/python3.6/typing.py", line 884, in __extrahook__'
    b' if issubclass(subclass, scls):'
    b' File "/usr/lib64/python3.6/typing.py", line 1154, in __subclasscheck__'
    b' return super().__subclasscheck__(cls)'
    b' File "/home/yulong/github/neutron/.tox/py36/lib64/python3.6/abc.py", line 209, in __subclasscheck__'
    b' ok = cls.__subclasshook__(subclass)'
    b' File "/usr/lib64/python3.6/typing.py", line 884, in __extrahook__'
    b' if issubclass(subclass, scls):'
    ...
    ...
    thousands of same log output.
    ...
    ...
    b' File "/usr/lib64/python3.6/typing.py", line 884, in __extrahook__'
    b' if issubclass(subclass, scls):'
    b' File "/usr/lib64/python3.6/typing.py", line 1154, in __subclasscheck__'
    b' return super().__subclasscheck__(cls)'
    b' File "/home/yulong/github/neutron/.tox/py36/lib64/python3.6/abc.py", line 199, in __subclasscheck__'
    b' if subclass in cls._abc_cache:'
    b'RecursionError: maximum recursion depth exceeded'
    b''

Captured pythonlogging:
~~~~~~~~~~~~~~~~~~~~~~~
    b' ERROR [neutron.plugins.ml2.drivers.openvswitch.agent.ovs_neutron_agent] Failed reporting state!'
    b'Traceback (most recent call last):'
    b' File "/home/yulong/github/neutron/.tox/py36/lib/python3.6/site-packages/oslo_messaging/_drivers/impl_fake.py", line 208, in _send'
    b' reply, failure = reply_q.get(timeout=timeout)'
    b' File "/home/yulong/github/neutron/.tox/py36/lib/python3.6/site-packages/eventlet/queue.py", line 322, in get'
    b' return waiter.wait()'
    b' File "/home/yulong/github/neutron/.tox/py36/lib/python3.6/site-packages/eventlet/queue.py", line 141, in wait'
    b' return get_hub().switch()'
    b' File "/home/yulong/github/neutron/.tox/py36/lib/python3.6/site-packages/eventlet/hubs/hub.py", line 298, in switch'
    b' return self.greenlet.switch()'
    b'queue.Empty'
    b''
    b'During handling of the above exception, another exception occurred:'
    b''
    b'Traceback (most recent call last):'
    b' File "/home/yulong/github/neutron/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_neutron_agent.py", line 362, in _report_state'
    b' True)'
    b' File "/home/yulong/github/neutron/neutron/agent/rpc.py", line 101, in report_state'
    b" return method(context, 'report_state', **kwargs)"
    b' File "/home/yulong/github/neutron/.tox/py36/lib/python3.6/site-packages/oslo_messaging/rpc/client.py", line 181, in call'
    b' transport_options=self.transport_options)'
    b' File "/home/yulong/github/neutron/.tox/py36/lib/python3.6/site-packages/oslo_messaging/transport.py", line 129, in _send'
    b' transport_options=transport_options)'
    b' File "/home/yulong/github/neutron/.tox/py36/lib/python3.6/site-packages/oslo_messaging/_drivers/impl_fake.py", line 224, in send'
    b' transport_options)'
    b' File "/home/yulong/github/neutron/.tox/py36/lib/python3.6/site-packages/oslo_messaging/_drivers/impl_fake.py", line 215, in _send'
    b" 'No reply on topic %s' % target.topic)"
    b'oslo_messaging.exceptions.MessagingTimeout: No reply on topic q-reports-plugin'
    b''

LIU Yulong (dragon889)
Changed in neutron:
status: New → Won't Fix
Revision history for this message
Slawek Kaplonski (slaweq) wrote :

I don't understand this. We are supporting py36 in neutron now and we should support this version. But I see e.g. in https://zuul.opendev.org/t/openstack/build/7b95702da19342179cfeecbca341323b that tests were passing yesterday.
Is it issue which is reproducible on gate now somehow? Or it's only in Your own local test run?

Revision history for this message
Nate Johnston (nate-johnston) wrote :

According to the Project Testing Interface (PTI), py36 isrequired for Ussuri: https://governance.openstack.org/tc/reference/runtimes/ussuri.html#python-runtime-for-ussuri

Reopened the bug and marked as critical.

Changed in neutron:
status: Won't Fix → New
importance: Low → Critical
Revision history for this message
LIU Yulong (dragon889) wrote :

But the tox envlist is:
"envlist = docs,py37,pep8"

description: updated
Revision history for this message
LIU Yulong (dragon889) wrote :

@Nate, bug description updated, thank you.

Revision history for this message
LIU Yulong (dragon889) wrote :

This, a bug from python 'typing', looks related to this:

https://github.com/python/typing/commit/a522554e2551b2d1ad46d287b428b2e3856d4c70
https://github.com/python/typing/issues/656
https://github.com/python/typing/pull/669

BUT after upgrading the 'typing' package to 3.7.4.1, the error still occurs.

Adds more failure cases:
{1} neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.test_ovs_neutron_agent.TestOvsDvrNeutronAgentOSKen.test_get_dvr_mac_address_exception [0.680656s] ... FAILED
{1} neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.test_ovs_neutron_agent.TestOvsNeutronAgentOSKen.test_port_update [3.020433s] ... FAILED
{1} neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.test_ovs_neutron_agent.TestOvsNeutronAgentOSKen.test_treat_smartnic_port_add [6.409691s] ... FAILED
{1} neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.test_ovs_neutron_agent.TestOvsNeutronAgentOSKen.test_treat_smartnic_port_remove [5.526507s] ... FAILED
{1} neutron.tests.unit.plugins.ml2.drivers.openvswitch.agent.test_ovs_neutron_agent.TestValidateTunnelLocalIP.test_validate_local_ip_with_none_ip [6.173587s] ... FAILED

Revision history for this message
LIU Yulong (dragon889) wrote :

Test python3 env:
$ rpm -qa|grep python3
python3-rpm-macros-3-22.el7.noarch
python3-setuptools-39.2.0-10.el7.noarch
python3-libs-3.6.8-10.el7.x86_64
python3-pip-9.0.3-5.el7.noarch
python3-rpm-generators-6-2.el7.noarch
python3-devel-3.6.8-10.el7.x86_64
python3-3.6.8-10.el7.x86_64

$ uname -r
3.10.0-957.10.1.el7.x86_64

Revision history for this message
Nate Johnston (nate-johnston) wrote :

Since I cannot replicate this myself and I do not see these failures in the gate, marking this as closed - incomplete.

Changed in neutron:
status: New → Incomplete
guanwenxue (guanwenxue)
Changed in neutron:
status: Incomplete → New
status: New → Incomplete
Changed in neutron:
status: Incomplete → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.