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

2018-07-25 Thread Corey Bryant
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

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

2018-07-25 Thread Joshua Harlow
Have you tried the following instead of threadpoolexecutor (which honestly should work as well, even under eventlet + eventlet patching). https://docs.openstack.org/futurist/latest/reference/index.html#futurist.GreenThreadPoolExecutor If you have the ability to specify which executor your code

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

2018-07-25 Thread Corey Bryant
Josh, Thanks for the input. GreenThreadPoolExecutor does not have the deadlock issue, so that is promising (at least with futurist 1.6.0). Does ThreadPoolExecutor have better performance than GreenThreadPoolExecutor? Curious if we could just swap out ThreadPoolExecutor for GreenThreadPoolExecutor

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

2018-07-25 Thread Joshua Harlow
So the only diff is that GreenThreadPoolExecutor was customized to work for eventlet (with a similar/same api as ThreadPoolExecutor); as for performance I would expect (under eventlet) that GreenThreadPoolExecutor would have better performance because it can use the native eventlet green object

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

2018-07-25 Thread Corey Bryant
Ok thanks again for the input. Corey On Wed, Jul 25, 2018 at 2:15 PM, Joshua Harlow wrote: > So the only diff is that GreenThreadPoolExecutor was customized to work > for eventlet (with a similar/same api as ThreadPoolExecutor); as for > performance I would expect (under eventlet) that GreenThr