From 6533958f5fcec8b1577f56834ea2dc75a4f211e3 Mon Sep 17 00:00:00 2001 From: Rodolfo Alonso Hernandez Date: Wed, 30 Sep 2020 11:27:31 +0000 Subject: [PATCH] Monkey patch original current_thread _active in processutils 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: I0a2c1e0d8a8cad99d68100d25e88e0d3a2eb8f5c Related-Bug: #1863021 --- oslo_concurrency/processutils.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/oslo_concurrency/processutils.py b/oslo_concurrency/processutils.py index c078490..fea5ecd 100644 --- a/oslo_concurrency/processutils.py +++ b/oslo_concurrency/processutils.py @@ -55,6 +55,13 @@ if eventlet_patched: from eventlet.green import subprocess from eventlet import tpool + + # 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 + orig_threading.current_thread.__globals__['_active'] = threading._active else: import subprocess