[openstack-dev] [all] [designate] [heat] [python3] deadlock with eventlet and ThreadPoolExecutor in py3.7

Corey Bryant corey.bryant at canonical.com
Wed Jul 25 15:49:54 UTC 2018

Hi All,

I'm trying to add Py3 packaging support for Ubuntu Rocky and while there
are a lot of issues involved with supporting Py3.7, this is one of the big
ones that I could use a hand with.

With py3.7, there's a deadlock when eventlet monkeypatch of stdlib thread
modules is combined with use of ThreadPoolExecutor. I know this affects at
least designate. The same or similar also affects heat (though I've not dug
into the code the traceback after canceling tests matches that seen with
designate). And it may affect other projects that I haven't touched yet.

How to recreate [1]:
* designate: Add a tox.ini py37 target and run designate.tests.test_workers.
* heat: Add a tox.ini py37 target and run tests
* general: Run bpo34173-recreate.py
<https://bugs.python.org/file47709/bpo34173-recreate.py> from issue 34173
(see below).
[1] ubuntu cosmic has py3.7

In issue 508 (see below) @tomoto asks "Eventlet and asyncio solve same
problem. Why would you want concurrent.futures and eventlet in same

I told @tomoto that I'd seek input to that question from upstream. I know
there've been efforts to move away from eventlet but I just don't have the
knowledge to  provide a good answer to him.

Here are the bugs/issues I currently have open for this:

Any help with this would be greatly appreciated!

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20180725/be6c5018/attachment.html>

More information about the OpenStack-dev mailing list