Make the eventlet logging fix execution conditional

This patch changes the ``log.setup()`` signature to allow a kwarg
that makes the eventlet logging fix conditional.

Some libraries that import oslo.log, replace the logging locking
handling with its own implementation. For example oslo.privsep
replaces the logging handler with its own one [1], that allows the
communication between the privileged daemon process and the service
importing the library. This local handler clashes with the
evenlet logging fix implemented in [2].

[1]1020c6fbf5/oslo_privsep/daemon.py (L579)
[2]https://review.opendev.org/c/openstack/oslo.log/+/852443

Partial-Bug: #1995514
Related-Bug: #1995091
Change-Id: I4bbcfe7db6d75188e61b9084cb02b2dd2aaa0c76
This commit is contained in:
Rodolfo Alonso Hernandez 2022-11-11 10:15:58 +01:00 committed by Rodolfo Alonso
parent 94b9dc32ec
commit de615d9370
1 changed files with 3 additions and 2 deletions

View File

@ -281,9 +281,10 @@ def _fix_eventlet_logging():
logging.Handler.createLock = pipe_mutex.pipe_createLock
def setup(conf, product_name, version='unknown'):
def setup(conf, product_name, version='unknown', *, fix_eventlet=True):
"""Setup logging for the current application."""
_fix_eventlet_logging()
if fix_eventlet:
_fix_eventlet_logging()
if conf.log_config_append:
_load_log_config(conf.log_config_append)
else: