Bug 1600972

Summary: Update the python2-tenacity rpm
Product: Red Hat OpenStack Reporter: Marc Methot <mmethot>
Component: python-tenacityAssignee: RHOS Maint <rhos-maint>
Status: CLOSED WONTFIX QA Contact: nlevinki <nlevinki>
Severity: low Docs Contact:
Priority: low    
Version: 13.0 (Queens)CC: amoralej, dbecker, jschluet, markmc, mburns, morazi, pablo.iranzo, srevivo
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-01-21 20:34:53 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Marc Methot 2018-07-13 13:54:19 UTC
Description of problem:
Customer request the use of python-tornado from the rhel-7-server-optional repository and python2-tenacity from the rhel-7-server-openstack-13 repository.

Doing so will lead to critical failure:
~~~
2018-07-11 15:26:09.144 36642 CRITICAL neutron [-] Unhandled error: AttributeError: 'module' object has no attribute 'is_coroutine_function'
2018-07-11 15:26:09.144 36642 ERROR neutron Traceback (most recent call last):
2018-07-11 15:26:09.144 36642 ERROR neutron   File "/usr/bin/neutron-openvswitch-agent", line 10, in <module>
2018-07-11 15:26:09.144 36642 ERROR neutron     sys.exit(main())
2018-07-11 15:26:09.144 36642 ERROR neutron   File "/usr/lib/python2.7/site-packages/neutron/cmd/eventlet/plugins/ovs_neutron_agent.py", line 20, in main
2018-07-11 15:26:09.144 36642 ERROR neutron     agent_main.main()
2018-07-11 15:26:09.144 36642 ERROR neutron   File "/usr/lib/python2.7/site-packages/neutron/plugins/ml2/drivers/openvswitch/agent/main.py", line 47, in main
2018-07-11 15:26:09.144 36642 ERROR neutron     mod.main()
2018-07-11 15:26:09.144 36642 ERROR neutron   File "/usr/lib/python2.7/site-packages/neutron/plugins/ml2/drivers/openvswitch/agent/openflow/native/main.py", line 35, in main
2018-07-11 15:26:09.144 36642 ERROR neutron     'neutron.plugins.ml2.drivers.openvswitch.agent.'
2018-07-11 15:26:09.144 36642 ERROR neutron   File "/usr/lib/python2.7/site-packages/ryu/base/app_manager.py", line 375, in run_apps
2018-07-11 15:26:09.144 36642 ERROR neutron     hub.joinall(services)
2018-07-11 15:26:09.144 36642 ERROR neutron   File "/usr/lib/python2.7/site-packages/ryu/lib/hub.py", line 103, in joinall
2018-07-11 15:26:09.144 36642 ERROR neutron     t.wait()
2018-07-11 15:26:09.144 36642 ERROR neutron   File "/usr/lib/python2.7/site-packages/eventlet/greenthread.py", line 175, in wait
2018-07-11 15:26:09.144 36642 ERROR neutron     return self._exit_event.wait()
2018-07-11 15:26:09.144 36642 ERROR neutron   File "/usr/lib/python2.7/site-packages/eventlet/event.py", line 125, in wait
2018-07-11 15:26:09.144 36642 ERROR neutron     current.throw(*self._exc)
2018-07-11 15:26:09.144 36642 ERROR neutron   File "/usr/lib/python2.7/site-packages/eventlet/greenthread.py", line 214, in main
2018-07-11 15:26:09.144 36642 ERROR neutron     result = function(*args, **kwargs)
2018-07-11 15:26:09.144 36642 ERROR neutron   File "/usr/lib/python2.7/site-packages/ryu/lib/hub.py", line 65, in _launch
2018-07-11 15:26:09.144 36642 ERROR neutron     raise e
2018-07-11 15:26:09.144 36642 ERROR neutron AttributeError: 'module' object has no attribute 'is_coroutine_function'
2018-07-11 15:26:09.144 36642 ERROR neutron
~~~

Basically running into this bug: https://github.com/jd/tenacity/issues/99
Which is resolved by applying these fixes: https://github.com/jd/tenacity/commit/97cde0d423ce71fb4fef69a2e2958aea462acb2e

Thus updating the rpm should probably solve this issue.

Example of a way to reproduce the failure:
- install  python2-tenacity and python-tornado from the mentioned above repositories on your controllers 
- do a cinder db-sync then you see that it fails

Comment 1 Marc Methot 2018-07-13 14:08:55 UTC
[root@controller1 tenacity]# yum info python2-tenacity
Installed Packages
Name        : python2-tenacity
Arch        : noarch
Version     : 4.8.0
Release     : 1.el7ost
Size        : 172 k
Repo        : installed
From repo   : rhel-7-server-openstack-13-rpms
Summary     : Tenacity is a general purpose retrying library
URL         : https://github.com/jd/tenacity
License     : ASL 2.0
Description :  Tenacity is a general purpose retrying library



[root@controller1 ~]# yum info python-tornado
Installed Packages
Name        : python-tornado
Arch        : x86_64
Version     : 4.2.1
Release     : 3.el7
Size        : 3.7 M
Repo        : installed
From repo   : rhel-7-server-optional-rpms
Summary     : Scalable, non-blocking web server and tools
URL         : http://www.tornadoweb.org
License     : ASL 2.0
Description : Tornado is an open source version of the scalable, non-blocking web
            : server and tools.
            : 
            : The framework is distinct from most mainstream web server frameworks
            : (and certainly most Python frameworks) because it is non-blocking and
            : reasonably fast. Because it is non-blocking and uses epoll, it can
            : handle thousands of simultaneous standing connections, which means it is
            : ideal for real-time web services.

Comment 2 Alfredo Moralejo 2018-07-13 16:10:00 UTC
Why is tornado getting installed in the servers?, it's not a dependency for other OSP packages so it must be a dependency for some other thing installed in the servers.

Comment 4 Marc Methot 2018-07-17 00:17:54 UTC
@alfredo The customer requires it as salt-minion is running on their nodes which requires tornado: https://docs.saltstack.com/en/latest/topics/installation/index.html#dependencies

This is not a dependency for Openstack.

-MM