Reviewed: https://review.opendev.org/716058 Committed: https://git.openstack.org/cgit/openstack/glance/commit/?id=90146b62c765ad1b8be1ffec1799cba9f3994c2d Submitter: Zuul Branch: master
commit 90146b62c765ad1b8be1ffec1799cba9f3994c2d Author: Corey Bryant <corey.bry...@canonical.com> Date: Mon Mar 30 15:14:15 2020 -0400 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: I95a8d8cf02a0cb923418c0b5655442b8d7bc6b08 Closes-Bug: #1863021 ** Changed in: glance Status: In Progress => Fix Released -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to Glance. https://bugs.launchpad.net/bugs/1863021 Title: eventlet monkey patch results in assert len(_active) == 1 AssertionError Status in Glance: Fix Released Status in OpenStack Compute (nova): Fix Released Status in glance package in Ubuntu: Fix Released Status in nova package in Ubuntu: Fix Released Bug description: This appears to be the same issue documented here: https://github.com/eventlet/eventlet/issues/592 However I seem to only hit this with python3.8. Basically nova and glance services fail with: Exception ignored in: <function _after_fork at 0x7f1100d075e0> Traceback (most recent call last): File "/usr/lib/python3.8/threading.py", line 1454, in _after_fork assert len(_active) == 1 AssertionError: Exception ignored in: <function _after_fork at 0x7f1100d075e0> Traceback (most recent call last): File "/usr/lib/python3.8/threading.py", line 1454, in _after_fork assert len(_active) == 1 AssertionError: Patching nova/monkey_patch.py with the following appears to fix this: diff --git a/nova/monkey_patch.py b/nova/monkey_patch.py index a07ff91dac..bb7252c643 100644 --- a/nova/monkey_patch.py +++ b/nova/monkey_patch.py @@ -59,6 +59,9 @@ def _monkey_patch(): else: eventlet.monkey_patch() + import __original_module_threading + import threading + __original_module_threading.current_thread.__globals__['_active'] = threading._active # NOTE(rpodolyaka): import oslo_service first, so that it makes eventlet # hub use a monotonic clock to avoid issues with drifts of system time (see Similar patches to glance/cmd/api.py, glance/cmd/scrubber.py and glance/cmd/registry.py appears to fix it for glance. To manage notifications about this bug go to: https://bugs.launchpad.net/glance/+bug/1863021/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp