From dffdf9bcba4cdd2b27b65f210525fd45fc492904 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sat, 11 Jan 2025 06:07:55 +0900 Subject: [PATCH] udev-rules: do not change maximum log level when running in test mode When udev rules are being tested, log level specified by SYSTEMD_LOG_LEVEL= environment variable should be honored, and should not be overridden by the rules. (cherry picked from commit 0363a45898b304b6040cd20e132a3dd946faae50) Resolves: RHEL-75774 --- src/udev/udev-rules.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c index 8d00702595..60e1976c5a 100644 --- a/src/udev/udev-rules.c +++ b/src/udev/udev-rules.c @@ -2394,11 +2394,18 @@ static int udev_rule_apply_token_to_event( if (level < 0) level = event->default_log_level; - log_set_max_level(level); + if (event->event_mode == EVENT_UDEV_WORKER) + log_set_max_level(level); + else { + _cleanup_free_ char *level_str = NULL; + (void) log_level_to_string_alloc(level, &level_str); + log_event_debug(dev, token, "Running in test mode, skipping changing maximum log level to %s.", strna(level_str)); + } if (level == LOG_DEBUG && !event->log_level_was_debug) { /* The log level becomes LOG_DEBUG at first time. Let's log basic information. */ - log_device_uevent(dev, "The log level is changed to 'debug' while processing device"); + if (event->event_mode == EVENT_UDEV_WORKER) + log_device_uevent(dev, "The log level is changed to 'debug' while processing device"); event->log_level_was_debug = true; }