From 1e81440b63dcafee9ad693dc0198c1598631086d Mon Sep 17 00:00:00 2001 From: Corey Bryant Date: Thu, 30 Apr 2020 15:44: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: I49bfd9673abc7602b27dc48b8b490daaded2882c Closes-Bug: #1863021 (cherry picked from commit ec7a5aa5161f438736c5a1dcf10f5d0e48f329cd) --- neutron/common/eventlet_utils.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/neutron/common/eventlet_utils.py b/neutron/common/eventlet_utils.py index e8e23c16f97..d8efacf5e34 100644 --- a/neutron/common/eventlet_utils.py +++ b/neutron/common/eventlet_utils.py @@ -37,3 +37,9 @@ def monkey_patch(): # fail on Windows when using pipes due to missing non-blocking IO # support. 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