summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorey Bryant <corey.bryant@canonical.com>2020-05-04 13:24:23 -0400
committerCorey Bryant <corey.bryant@canonical.com>2020-05-04 14:45:06 -0400
commit68dc62b7389ca5896ca4bd5494b74f91e10b270f (patch)
tree7c172124c48ebd230002eb1fc5b81afac2916a05
parentaf165c923518cd62e2a8dfe22be650ae8b60fd78 (diff)
downloaddesignate-68dc62b7389ca5896ca4bd5494b74f91e10b270f.tar.gz
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: I8c2ffea3c31b3009c87455d9c54dc233367f0d3d Closes-Bug: #1863021
-rw-r--r--designate/cmd/__init__.py6
-rw-r--r--designate/cmd/manage.py6
2 files changed, 12 insertions, 0 deletions
diff --git a/designate/cmd/__init__.py b/designate/cmd/__init__.py
index 806716bc..3a7edfa9 100644
--- a/designate/cmd/__init__.py
+++ b/designate/cmd/__init__.py
@@ -16,3 +16,9 @@
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 # noqa
+import threading # noqa
+orig_threading.current_thread.__globals__['_active'] = threading._active
diff --git a/designate/cmd/manage.py b/designate/cmd/manage.py
index 08cc472c..bc8e8f90 100644
--- a/designate/cmd/manage.py
+++ b/designate/cmd/manage.py
@@ -29,6 +29,12 @@ from designate import utils
from designate import version
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 # noqa
+import threading # noqa
+orig_threading.current_thread.__globals__['_active'] = threading._active
CONF = designate.conf.CONF