From b83ce338312bfeabda6b6755f49530acde61141e Mon Sep 17 00:00:00 2001 From: Corey Bryant Date: Mon, 4 May 2020 14:06:38 -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: Icc2277b72f6f8f7812be22c43bbc281334aa2373 Closes-Bug: #1863021 --- oslo_service/eventlet_backdoor.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/oslo_service/eventlet_backdoor.py b/oslo_service/eventlet_backdoor.py index 16daffbf..9ea79813 100644 --- a/oslo_service/eventlet_backdoor.py +++ b/oslo_service/eventlet_backdoor.py @@ -257,6 +257,12 @@ def initialize_if_enabled(conf): def _main(): import eventlet eventlet.monkey_patch(all=True) + # 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 from oslo_config import cfg