From 2e6ae73932e288952e52417d11818ed006f82bbc Mon Sep 17 00:00:00 2001 From: Corey Bryant Date: Mon, 4 May 2020 13:18:10 -0400 Subject: [PATCH] Monkey patch original current_thread _active Monkey patch the original current_thread to use the up-to-date _active global variable. This solution is based on that documented at: https://github.com/eventlet/eventlet/issues/592 Change-Id: I0540923755ac3969b584eeba2e19c037a7f2c261 Story: 2007614 (cherry picked from commit 8fd17214a97322a8a0136e50ced1d65a7d9dd75e) --- heat/cmd/all.py | 6 ++++++ heat/cmd/api.py | 6 ++++++ heat/cmd/api_cfn.py | 6 ++++++ heat/cmd/engine.py | 6 ++++++ 4 files changed, 24 insertions(+) diff --git a/heat/cmd/all.py b/heat/cmd/all.py index 526bc7fa29..d9c7dd0d68 100644 --- a/heat/cmd/all.py +++ b/heat/cmd/all.py @@ -20,6 +20,12 @@ An OpenStack Heat server that can run all services. import eventlet eventlet.monkey_patch(os=False) +# Monkey patch the original current_thread to use the up-to-date _active +# global variable. See https://bugs.launchpad.net/bugs/1863021 and +# https://github.com/eventlet/eventlet/issues/592 +import __original_module_threading as orig_threading +import threading # noqa +orig_threading.current_thread.__globals__['_active'] = threading._active import sys diff --git a/heat/cmd/api.py b/heat/cmd/api.py index b8ea0111cf..4ab22b0d66 100644 --- a/heat/cmd/api.py +++ b/heat/cmd/api.py @@ -20,6 +20,12 @@ An OpenStack ReST API to Heat. import eventlet eventlet.monkey_patch(os=False) +# Monkey patch the original current_thread to use the up-to-date _active +# global variable. See https://bugs.launchpad.net/bugs/1863021 and +# https://github.com/eventlet/eventlet/issues/592 +import __original_module_threading as orig_threading +import threading # noqa +orig_threading.current_thread.__globals__['_active'] = threading._active import sys diff --git a/heat/cmd/api_cfn.py b/heat/cmd/api_cfn.py index bc7cd5b022..2a44605e5c 100644 --- a/heat/cmd/api_cfn.py +++ b/heat/cmd/api_cfn.py @@ -22,6 +22,12 @@ AMQP RPC to implement them. import eventlet eventlet.monkey_patch(os=False) +# Monkey patch the original current_thread to use the up-to-date _active +# global variable. See https://bugs.launchpad.net/bugs/1863021 and +# https://github.com/eventlet/eventlet/issues/592 +import __original_module_threading as orig_threading +import threading # noqa +orig_threading.current_thread.__globals__['_active'] = threading._active import sys diff --git a/heat/cmd/engine.py b/heat/cmd/engine.py index f30081d7e7..b969a4c22b 100644 --- a/heat/cmd/engine.py +++ b/heat/cmd/engine.py @@ -22,6 +22,12 @@ engine. import eventlet eventlet.monkey_patch() +# Monkey patch the original current_thread to use the up-to-date _active +# global variable. See https://bugs.launchpad.net/bugs/1863021 and +# https://github.com/eventlet/eventlet/issues/592 +import __original_module_threading as orig_threading +import threading # noqa +orig_threading.current_thread.__globals__['_active'] = threading._active import sys