Correctly disable greendns

Previously, we were setting the environment variable to disable
greendns in eventlet *after* import eventlet. This has no effect, as
eventlet processes environment variables at import time. This patch
moves the setting of EVENTLET_NO_GREENDNS before importing eventlet in
order to correctly disable greendns.

Closes-bug: 1895322
Change-Id: I4deed815c8984df095019a7f61d089f233f1fc66
(cherry picked from commit 7c1d964faa)
(cherry picked from commit 79e6b7fd30)
(cherry picked from commit 4984b3b75b)
This commit is contained in:
Artom Lifshitz 2020-09-11 10:23:30 -04:00 committed by Vlad Gusev
parent ad7e4fb8f4
commit d7c70136a0
1 changed files with 13 additions and 10 deletions

View File

@ -22,6 +22,19 @@ import os
def _monkey_patch():
# See https://bugs.launchpad.net/nova/+bug/1164822
# TODO(mdbooth): This feature was deprecated and removed in eventlet at
# some point but brought back in version 0.21.0, presumably because some
# users still required it to work round issues. However, there have been a
# number of greendns fixes in eventlet since then. Specifically, it looks
# as though the originally reported IPv6 issue may have been fixed in
# version 0.24.0. We should remove this when we can confirm that the
# original issue is fixed.
# NOTE(artom) eventlet processes environment variables at import-time. We
# therefore set this here, before importing eventlet, in order to correctly
# disable greendns.
os.environ['EVENTLET_NO_GREENDNS'] = 'yes'
# NOTE(mdbooth): Anything imported here will not be monkey patched. It is
# important to take care not to import anything here which requires monkey
# patching.
@ -39,16 +52,6 @@ def _monkey_patch():
problems = (set(['urllib3', 'oslo_context.context']) &
set(sys.modules.keys()))
# See https://bugs.launchpad.net/nova/+bug/1164822
# TODO(mdbooth): This feature was deprecated and removed in eventlet at
# some point but brought back in version 0.21.0, presumably because some
# users still required it to work round issues. However, there have been a
# number of greendns fixes in eventlet since then. Specifically, it looks
# as though the originally reported IPv6 issue may have been fixed in
# version 0.24.0. We should remove this when we can confirm that the
# original issue is fixed.
os.environ['EVENTLET_NO_GREENDNS'] = 'yes'
if debugger.enabled():
# turn off thread patching to enable the remote debugger
eventlet.monkey_patch(thread=False)