Skip to content

Commit b57fce8

Browse files
Balazs Gibizerandrewbonney
authored andcommitted
Fix eventlet.tpool import
Currently nova.utils.tpool_execute() only works by chance. And as the bug report shows there are env where it fails. The nova.utils.tpool_execute() call tries to uses eventlet.tpool.execute but the tpool module is not imported by the utils module only eventlet. In devstack it works by chance as the wsgi init actually imports eventlet.tpool indirectly via: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/opt/stack/nova/nova/api/openstack/compute/__init__.py", line 21, in <module> from nova.api.openstack.compute.routes import APIRouterV21 # noqa File "/opt/stack/nova/nova/api/openstack/compute/routes.py", line 20, in <module> from nova.api.openstack.compute import admin_actions File "/opt/stack/nova/nova/api/openstack/compute/admin_actions.py", line 17, in <module> from nova.api.openstack import common File "/opt/stack/nova/nova/api/openstack/common.py", line 27, in <module> from nova.compute import task_states File "/opt/stack/nova/nova/compute/task_states.py", line 26, in <module> from nova.objects import fields File "/opt/stack/nova/nova/objects/fields.py", line 24, in <module> from nova.network import model as network_model File "/opt/stack/nova/nova/network/model.py", line 23, in <module> from nova import utils File "/opt/stack/nova/nova/utils.py", line 39, in <module> from oslo_concurrency import processutils File "/usr/local/lib/python3.8/dist-packages/oslo_concurrency/processutils.py", line 57, in <module> from eventlet import tpool This was broken since I8dbc579e0037969aab4f2bb500fccfbde4190726. This patch adds the correct import statement. Change-Id: Ic46345ceeb445164aea6ae9b35c457c6150765f6 Closes-Bug: #1915400 (cherry picked from commit b2d28f8) (cherry picked from commit a9f444a)
1 parent ad7447d commit b57fce8

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

nova/utils.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import tempfile
3030

3131
import eventlet
32+
from eventlet import tpool
3233
from keystoneauth1 import loading as ks_loading
3334
import netaddr
3435
from openstack import connection
@@ -684,7 +685,7 @@ def context_wrapper(*args, **kwargs):
684685

685686
def tpool_execute(func, *args, **kwargs):
686687
"""Run func in a native thread"""
687-
eventlet.tpool.execute(func, *args, **kwargs)
688+
tpool.execute(func, *args, **kwargs)
688689

689690

690691
def is_none_string(val):

0 commit comments

Comments
 (0)