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
[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.
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.
@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