systemd-252-55
Resolves: RHEL-100353
This commit is contained in:
parent
991d4ee004
commit
531076b9fc
@ -0,0 +1,54 @@
|
||||
From b0134d872f6f7dd6b310d4791cb10dd78c0126fe Mon Sep 17 00:00:00 2001
|
||||
From: Yu Watanabe <watanabe.yu+github@gmail.com>
|
||||
Date: Tue, 18 Mar 2025 15:50:43 +0900
|
||||
Subject: [PATCH] tree-wide: check more log message format in log_struct() and
|
||||
friends
|
||||
|
||||
This introduce LOG_ITEM() macro that checks arbitrary formats in
|
||||
log_struct().
|
||||
Then, drop _printf_ attribute from log_struct_internal(), as it does not
|
||||
help so much, and compiler checked only the first format string.
|
||||
|
||||
Hopefully, this silences false-positive warnings by Coverity.
|
||||
|
||||
[dtardon: Backported just the new macros, not their use across the
|
||||
source tree. I could easily avoid doing it at all, but the macros might
|
||||
be useful for future backports.]
|
||||
|
||||
(cherry picked from commit 3cf6a3a3d4acf8347ccd0250274f517e6b2e9fe6)
|
||||
|
||||
Related: RHEL-100353
|
||||
---
|
||||
src/basic/log.h | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/basic/log.h b/src/basic/log.h
|
||||
index c51941c141..153c3571b6 100644
|
||||
--- a/src/basic/log.h
|
||||
+++ b/src/basic/log.h
|
||||
@@ -146,7 +146,7 @@ int log_struct_internal(
|
||||
const char *file,
|
||||
int line,
|
||||
const char *func,
|
||||
- const char *format, ...) _printf_(6,0) _sentinel_;
|
||||
+ const char *format, ...) _sentinel_;
|
||||
|
||||
int log_oom_internal(
|
||||
int level,
|
||||
@@ -305,11 +305,15 @@ bool log_on_console(void) _pure_;
|
||||
/* Do a fake formatting of the message string to let the scanner verify the arguments against the format
|
||||
* message. The variable will never be set to true, but we don't tell the compiler that :) */
|
||||
extern bool _log_message_dummy;
|
||||
-# define LOG_MESSAGE(fmt, ...) "MESSAGE=%.0d" fmt, (_log_message_dummy && printf(fmt, ##__VA_ARGS__)), ##__VA_ARGS__
|
||||
+# define LOG_ITEM(fmt, ...) "%.0d" fmt, (_log_message_dummy && printf(fmt, ##__VA_ARGS__)), ##__VA_ARGS__
|
||||
+# define LOG_MESSAGE(fmt, ...) LOG_ITEM("MESSAGE=" fmt, ##__VA_ARGS__)
|
||||
#else
|
||||
+# define LOG_ITEM(fmt, ...) fmt, ##__VA_ARGS__
|
||||
# define LOG_MESSAGE(fmt, ...) "MESSAGE=" fmt, ##__VA_ARGS__
|
||||
#endif
|
||||
|
||||
+#define LOG_MESSAGE_ID(id) LOG_ITEM("MESSAGE_ID=" id)
|
||||
+
|
||||
void log_received_signal(int level, const struct signalfd_siginfo *si);
|
||||
|
||||
/* If turned on, any requests for a log target involving "syslog" will be implicitly upgraded to the equivalent journal target */
|
||||
29
1201-build-add-some-coloring-to-version-output.patch
Normal file
29
1201-build-add-some-coloring-to-version-output.patch
Normal file
@ -0,0 +1,29 @@
|
||||
From 907ba128ec81e8821433c2bdfed84169cd9c644b Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Mon, 23 Jan 2023 16:23:45 +0100
|
||||
Subject: [PATCH] build: add some coloring to --version output
|
||||
|
||||
Make it easier to discern enabled and disabled build options.
|
||||
|
||||
[dtardon: I picked just the def. of log_oom_warning(), as we don't
|
||||
really need the rest.]
|
||||
|
||||
(cherry picked from commit 4453ebe4db0511d25bed1040930ea6430c1bed91)
|
||||
|
||||
Related: RHEL-100353
|
||||
---
|
||||
src/basic/log.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/basic/log.h b/src/basic/log.h
|
||||
index 153c3571b6..3527336278 100644
|
||||
--- a/src/basic/log.h
|
||||
+++ b/src/basic/log.h
|
||||
@@ -296,6 +296,7 @@ int log_emergency_level(void);
|
||||
|
||||
#define log_oom() log_oom_internal(LOG_ERR, PROJECT_FILE, __LINE__, __func__)
|
||||
#define log_oom_debug() log_oom_internal(LOG_DEBUG, PROJECT_FILE, __LINE__, __func__)
|
||||
+#define log_oom_warning() log_oom_internal(LOG_WARNING, PROJECT_FILE, __LINE__, __func__)
|
||||
|
||||
bool log_on_console(void) _pure_;
|
||||
|
||||
@ -0,0 +1,48 @@
|
||||
From 6973805b33c02c9613ca71003489c428fe1e894e Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 18 Jun 2025 11:47:06 +0200
|
||||
Subject: [PATCH] core: output log cycle path in one log message, not many
|
||||
|
||||
Fixes: #35642
|
||||
(cherry picked from commit 201647e3f2ff04fbaebc1901431b7ff610f995fb)
|
||||
|
||||
Related: RHEL-100353
|
||||
---
|
||||
src/core/transaction.c | 23 ++++++++++++++++-------
|
||||
1 file changed, 16 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/src/core/transaction.c b/src/core/transaction.c
|
||||
index bb51f51318..747c9101e3 100644
|
||||
--- a/src/core/transaction.c
|
||||
+++ b/src/core/transaction.c
|
||||
@@ -393,14 +393,23 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
|
||||
|
||||
unit_ids = merge_unit_ids(j->manager->unit_log_field, array); /* ignore error */
|
||||
|
||||
- STRV_FOREACH_PAIR(unit_id, job_type, array)
|
||||
- /* logging for j not k here to provide a consistent narrative */
|
||||
+ size_t m = strv_length(array);
|
||||
+
|
||||
+ _cleanup_free_ char *cycle_path_text = strdup("Found ordering cycle");
|
||||
+ if (m > 0) {
|
||||
+ (void) strextendf(&cycle_path_text, " on %s/%s", array[0], array[1]);
|
||||
+ if (m > 2)
|
||||
+ (void) strextendf(&cycle_path_text, "; has dependency on %s/%s", array[2], array[3]);
|
||||
+ }
|
||||
+
|
||||
+ STRV_FOREACH_PAIR(unit_id, job_type, strv_skip(array, 4))
|
||||
+ (void) strextendf(&cycle_path_text, ", %s/%s", *unit_id, *job_type);
|
||||
+
|
||||
+ /* logging for j not k here to provide a consistent narrative */
|
||||
+ if (cycle_path_text)
|
||||
log_struct(LOG_WARNING,
|
||||
- LOG_UNIT_MESSAGE(j->unit,
|
||||
- "Found %s on %s/%s",
|
||||
- unit_id == array ? "ordering cycle" : "dependency",
|
||||
- *unit_id, *job_type),
|
||||
- "%s", strna(unit_ids));
|
||||
+ LOG_UNIT_MESSAGE(j->unit, "%s", cycle_path_text),
|
||||
+ LOG_ITEM("%s", strna(unit_ids)));
|
||||
|
||||
if (delete) {
|
||||
const char *status;
|
||||
@ -0,0 +1,74 @@
|
||||
From c0f5bfe59f56321ebf62b73724b4a6a12e176946 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 18 Jun 2025 11:47:25 +0200
|
||||
Subject: [PATCH] core: make log cycle messages recognizable via message IDs
|
||||
|
||||
(cherry picked from commit 5bbad6244ffc3849511c6ca652a27f1af550c599)
|
||||
|
||||
Resolves: RHEL-100353
|
||||
---
|
||||
src/core/transaction.c | 9 +++++++--
|
||||
src/systemd/sd-messages.h | 9 +++++++++
|
||||
2 files changed, 16 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/core/transaction.c b/src/core/transaction.c
|
||||
index 747c9101e3..2d4c48b82a 100644
|
||||
--- a/src/core/transaction.c
|
||||
+++ b/src/core/transaction.c
|
||||
@@ -3,6 +3,8 @@
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
|
||||
+#include "sd-messages.h"
|
||||
+
|
||||
#include "alloc-util.h"
|
||||
#include "bus-common-errors.h"
|
||||
#include "bus-error.h"
|
||||
@@ -409,6 +411,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
|
||||
if (cycle_path_text)
|
||||
log_struct(LOG_WARNING,
|
||||
LOG_UNIT_MESSAGE(j->unit, "%s", cycle_path_text),
|
||||
+ LOG_MESSAGE_ID(SD_MESSAGE_UNIT_ORDERING_CYCLE_STR),
|
||||
LOG_ITEM("%s", strna(unit_ids)));
|
||||
|
||||
if (delete) {
|
||||
@@ -419,7 +422,8 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
|
||||
"Job %s/%s deleted to break ordering cycle starting with %s/%s",
|
||||
delete->unit->id, job_type_to_string(delete->type),
|
||||
j->unit->id, job_type_to_string(j->type)),
|
||||
- "%s", strna(unit_ids));
|
||||
+ LOG_MESSAGE_ID(SD_MESSAGE_DELETING_JOB_BECAUSE_ORDERING_CYCLE_STR),
|
||||
+ LOG_ITEM("%s", strna(unit_ids)));
|
||||
|
||||
if (log_get_show_color())
|
||||
status = ANSI_HIGHLIGHT_RED " SKIP " ANSI_NORMAL;
|
||||
@@ -438,7 +442,8 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
|
||||
log_struct(LOG_ERR,
|
||||
LOG_UNIT_MESSAGE(j->unit, "Unable to break cycle starting with %s/%s",
|
||||
j->unit->id, job_type_to_string(j->type)),
|
||||
- "%s", strna(unit_ids));
|
||||
+ LOG_MESSAGE_ID(SD_MESSAGE_CANT_BREAK_ORDERING_CYCLE_STR),
|
||||
+ LOG_ITEM("%s", strna(unit_ids)));
|
||||
|
||||
return sd_bus_error_setf(e, BUS_ERROR_TRANSACTION_ORDER_IS_CYCLIC,
|
||||
"Transaction order is cyclic. See system logs for details.");
|
||||
diff --git a/src/systemd/sd-messages.h b/src/systemd/sd-messages.h
|
||||
index 51241c9426..67765c0f05 100644
|
||||
--- a/src/systemd/sd-messages.h
|
||||
+++ b/src/systemd/sd-messages.h
|
||||
@@ -192,6 +192,15 @@ _SD_BEGIN_DECLARATIONS;
|
||||
#define SD_MESSAGE_TPM_PCR_EXTEND SD_ID128_MAKE(3f,7d,5e,f3,e5,4f,43,02,b4,f0,b1,43,bb,27,0c,ab)
|
||||
#define SD_MESSAGE_TPM_PCR_EXTEND_STR SD_ID128_MAKE_STR(3f,7d,5e,f3,e5,4f,43,02,b4,f0,b1,43,bb,27,0c,ab)
|
||||
|
||||
+#define SD_MESSAGE_UNIT_ORDERING_CYCLE SD_ID128_MAKE(f2,7a,3f,94,40,6a,47,83,b9,46,a9,bc,84,9e,94,52)
|
||||
+#define SD_MESSAGE_UNIT_ORDERING_CYCLE_STR SD_ID128_MAKE_STR(f2,7a,3f,94,40,6a,47,83,b9,46,a9,bc,84,9e,94,52)
|
||||
+
|
||||
+#define SD_MESSAGE_DELETING_JOB_BECAUSE_ORDERING_CYCLE SD_ID128_MAKE(50,84,36,75,42,f7,47,2d,bc,6a,94,12,5d,5d,eb,ce)
|
||||
+#define SD_MESSAGE_DELETING_JOB_BECAUSE_ORDERING_CYCLE_STR SD_ID128_MAKE_STR(50,84,36,75,42,f7,47,2d,bc,6a,94,12,5d,5d,eb,ce)
|
||||
+
|
||||
+#define SD_MESSAGE_CANT_BREAK_ORDERING_CYCLE SD_ID128_MAKE(b3,11,2d,da,d1,90,45,53,8c,76,68,5b,a5,91,8a,80)
|
||||
+#define SD_MESSAGE_CANT_BREAK_ORDERING_CYCLE_STR SD_ID128_MAKE_STR(b3,11,2d,da,d1,90,45,53,8c,76,68,5b,a5,91,8a,80)
|
||||
+
|
||||
_SD_END_DECLARATIONS;
|
||||
|
||||
#endif
|
||||
41
1204-core-change-ordering-cycle-log-message-log-levels.patch
Normal file
41
1204-core-change-ordering-cycle-log-message-log-levels.patch
Normal file
@ -0,0 +1,41 @@
|
||||
From 637b4c312f2dfbf2fadf6829550502359d195678 Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 18 Jun 2025 11:48:39 +0200
|
||||
Subject: [PATCH] core: change ordering cycle log message log levels
|
||||
|
||||
Let's downgrade the log message about our attempts to deal with an
|
||||
ordering cycle to warning, because this is a "positive" thing, we try to
|
||||
improve an earlier error.
|
||||
|
||||
OTOH increase the log level when we first log about the cycle to error,
|
||||
since that highlights the actual problem.
|
||||
|
||||
(cherry picked from commit fe458ad68e2813823c381c4010bad201f5e2c2be)
|
||||
|
||||
Related: RHEL-100353
|
||||
---
|
||||
src/core/transaction.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/core/transaction.c b/src/core/transaction.c
|
||||
index 2d4c48b82a..2dd3c1bac3 100644
|
||||
--- a/src/core/transaction.c
|
||||
+++ b/src/core/transaction.c
|
||||
@@ -409,7 +409,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
|
||||
|
||||
/* logging for j not k here to provide a consistent narrative */
|
||||
if (cycle_path_text)
|
||||
- log_struct(LOG_WARNING,
|
||||
+ log_struct(LOG_ERR,
|
||||
LOG_UNIT_MESSAGE(j->unit, "%s", cycle_path_text),
|
||||
LOG_MESSAGE_ID(SD_MESSAGE_UNIT_ORDERING_CYCLE_STR),
|
||||
LOG_ITEM("%s", strna(unit_ids)));
|
||||
@@ -417,7 +417,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
|
||||
if (delete) {
|
||||
const char *status;
|
||||
/* logging for j not k here to provide a consistent narrative */
|
||||
- log_struct(LOG_ERR,
|
||||
+ log_struct(LOG_WARNING,
|
||||
LOG_UNIT_MESSAGE(j->unit,
|
||||
"Job %s/%s deleted to break ordering cycle starting with %s/%s",
|
||||
delete->unit->id, job_type_to_string(delete->type),
|
||||
25
1205-core-cast-log_oom-got-void.patch
Normal file
25
1205-core-cast-log_oom-got-void.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From bcd3816f09ac86fc438c89377fef0f27fa25c57b Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Wed, 18 Jun 2025 11:51:45 +0200
|
||||
Subject: [PATCH] core: cast log_oom() got void
|
||||
|
||||
(cherry picked from commit 6650e21349273a5274ce00d689ed881d2976a6e7)
|
||||
|
||||
Related: RHEL-100353
|
||||
---
|
||||
src/core/transaction.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/core/transaction.c b/src/core/transaction.c
|
||||
index 2dd3c1bac3..3f62cfd79b 100644
|
||||
--- a/src/core/transaction.c
|
||||
+++ b/src/core/transaction.c
|
||||
@@ -382,7 +382,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
|
||||
|
||||
/* For logging below */
|
||||
if (strv_push_pair(&array, k->unit->id, (char*) job_type_to_string(k->type)) < 0)
|
||||
- log_oom();
|
||||
+ (void) log_oom_warning();
|
||||
|
||||
if (!delete && hashmap_get(tr->jobs, k->unit) && !unit_matters_to_anchor(k->unit, k))
|
||||
/* Ok, we can drop this one, so let's do so. */
|
||||
@ -0,0 +1,26 @@
|
||||
From 115bb1c4d76b4b2ccd9f400b342facb610ec820d Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Thu, 19 Jun 2025 10:15:35 +0200
|
||||
Subject: [PATCH] core: when removing a job from a transaction, include in
|
||||
structured log message which
|
||||
|
||||
(cherry picked from commit becbd2ec4e00aafb656ebc4b2977c1f62adc2ee8)
|
||||
|
||||
Related: RHEL-100353
|
||||
---
|
||||
src/core/transaction.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/core/transaction.c b/src/core/transaction.c
|
||||
index 3f62cfd79b..f61ab26bf8 100644
|
||||
--- a/src/core/transaction.c
|
||||
+++ b/src/core/transaction.c
|
||||
@@ -423,6 +423,8 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
|
||||
delete->unit->id, job_type_to_string(delete->type),
|
||||
j->unit->id, job_type_to_string(j->type)),
|
||||
LOG_MESSAGE_ID(SD_MESSAGE_DELETING_JOB_BECAUSE_ORDERING_CYCLE_STR),
|
||||
+ LOG_ITEM("DELETED_UNIT=%s", delete->unit->id),
|
||||
+ LOG_ITEM("DELETED_TYPE=%s", job_type_to_string(delete->type)),
|
||||
LOG_ITEM("%s", strna(unit_ids)));
|
||||
|
||||
if (log_get_show_color())
|
||||
@ -0,0 +1,73 @@
|
||||
From 9af2c41e6a7d3f6034326f30e35c324c7e02274b Mon Sep 17 00:00:00 2001
|
||||
From: Lennart Poettering <lennart@poettering.net>
|
||||
Date: Thu, 19 Jun 2025 10:15:49 +0200
|
||||
Subject: [PATCH] catalog: add entries for the order cycle log messages
|
||||
|
||||
Fixes: #35642
|
||||
(cherry picked from commit e4003f2d9cb93d09d99b87a3d2f68cb0889ecbe8)
|
||||
|
||||
Related: RHEL-100353
|
||||
---
|
||||
catalog/systemd.catalog.in | 52 ++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 52 insertions(+)
|
||||
|
||||
diff --git a/catalog/systemd.catalog.in b/catalog/systemd.catalog.in
|
||||
index 4c29128f71..86d7067f6f 100644
|
||||
--- a/catalog/systemd.catalog.in
|
||||
+++ b/catalog/systemd.catalog.in
|
||||
@@ -539,3 +539,55 @@ Platform Configuration Register (PCR) @PCR@, on banks @BANKS@.
|
||||
Whenever the system transitions to a new runtime phase, a different string is
|
||||
extended into the specified PCR, to ensure that security policies for TPM-bound
|
||||
secrets and other resources are limited to specific phases of the runtime.
|
||||
+
|
||||
+-- f27a3f94406a4783b946a9bc849e9452
|
||||
+Subject: Unit ordering cycle found
|
||||
+Defined-By: systemd
|
||||
+Support: %SUPPORT_URL%
|
||||
+Documentation: man:systemd(1)
|
||||
+
|
||||
+A unit transaction was initiated that contains an ordering cycle, i.e. some
|
||||
+unit that was requested to be started (either directly, or indirectly due to a
|
||||
+requirement dependency such as Wants= or Requires=) is ordered before some
|
||||
+other unit (via After=/Before=), but that latter unit is also ordered before
|
||||
+the former by some dependency (either directly or indirectly).
|
||||
+
|
||||
+Ordering cycles consist of at least two units, but might involve many
|
||||
+more. They generally indicate a bug in the unit definitions, as a unit
|
||||
+conceptually cannot be run both before and after some other unit, it must be
|
||||
+strictly ordered either before or after.
|
||||
+
|
||||
+The ordering cycle is shown in the log message. An attempt will be made to
|
||||
+remove unit jobs from the transaction in order to make the transaction succeed
|
||||
+at least partially. Note that such cycle breaking is not going to correct the
|
||||
+issue, it is just an attempt to make the outcome less problematic.
|
||||
+
|
||||
+The correct fix is to analyze the cycle in question and then break the cycle at
|
||||
+the right place by removing the right After= or Before= lines from one or more
|
||||
+of the involved unit files.
|
||||
+
|
||||
+-- 5084367542f7472dbc6a94125d5debce
|
||||
+Subject: Unit job deleted due to an ordering cycle
|
||||
+Defined-By: systemd
|
||||
+Support: %SUPPORT_URL%
|
||||
+Documentation: man:systemd(1)
|
||||
+
|
||||
+In order to address an ordering cycle between units that have been added to a
|
||||
+transaction a job has been removed from the transaction.
|
||||
+
|
||||
+The removed job is '@DELETED_TYPE@' for unit @DELETED_UNIT@.
|
||||
+
|
||||
+The removal of the job is done in order to minimize the negative effect of an
|
||||
+ordering cycle — it is not going to fix the underlying problem, which is a bug
|
||||
+in the involved unit files. The deleted job might be fundamental for the other
|
||||
+units in the transaction to operate, which hence might fail.
|
||||
+
|
||||
+-- b3112ddad19045538c76685ba5918a80
|
||||
+Subject: Unable to break ordering cycle between units
|
||||
+Defined-By: systemd
|
||||
+Support: %SUPPORT_URL%
|
||||
+Documentation: man:systemd(1)
|
||||
+
|
||||
+It has been attempted to break an ordering cycle between units for which jobs
|
||||
+have been enqueued as part of a transaction, but this was not successful. The
|
||||
+transaction will fail.
|
||||
@ -0,0 +1,46 @@
|
||||
From d281329eaba88a8ea16bda1c4216ee2d73376d90 Mon Sep 17 00:00:00 2001
|
||||
From: Yu Watanabe <watanabe.yu+github@gmail.com>
|
||||
Date: Tue, 18 Mar 2025 15:50:43 +0900
|
||||
Subject: [PATCH] tree-wide: check more log message format in log_struct() and
|
||||
friends
|
||||
|
||||
This introduce LOG_ITEM() macro that checks arbitrary formats in
|
||||
log_struct().
|
||||
Then, drop _printf_ attribute from log_struct_internal(), as it does not
|
||||
help so much, and compiler checked only the first format string.
|
||||
|
||||
Hopefully, this silences false-positive warnings by Coverity.
|
||||
|
||||
[dtardon: Backported just the immediate fix for a compiler warning.]
|
||||
|
||||
(cherry picked from commit 3cf6a3a3d4acf8347ccd0250274f517e6b2e9fe6)
|
||||
|
||||
Related: RHEL-100353
|
||||
---
|
||||
src/basic/log.c | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/src/basic/log.c b/src/basic/log.c
|
||||
index 2e1642dc20..20bf45170c 100644
|
||||
--- a/src/basic/log.c
|
||||
+++ b/src/basic/log.c
|
||||
@@ -959,7 +959,9 @@ int log_struct_internal(
|
||||
iovec[n++] = IOVEC_MAKE_STRING(header);
|
||||
|
||||
va_start(ap, format);
|
||||
+ DISABLE_WARNING_FORMAT_NONLITERAL;
|
||||
r = log_format_iovec(iovec, ELEMENTSOF(iovec), &n, true, error, format, ap);
|
||||
+ REENABLE_WARNING;
|
||||
if (r < 0)
|
||||
fallback = true;
|
||||
else {
|
||||
@@ -993,7 +995,9 @@ int log_struct_internal(
|
||||
errno = ERRNO_VALUE(error);
|
||||
|
||||
va_copy(aq, ap);
|
||||
+ DISABLE_WARNING_FORMAT_NONLITERAL;
|
||||
(void) vsnprintf(buf, sizeof buf, format, aq);
|
||||
+ REENABLE_WARNING;
|
||||
va_end(aq);
|
||||
|
||||
if (startswith(buf, "MESSAGE=")) {
|
||||
@ -0,0 +1,46 @@
|
||||
From 218ce1e8353ba19e2886adb98379ba6c82f9692b Mon Sep 17 00:00:00 2001
|
||||
From: Mike Yuan <me@yhndnzj.com>
|
||||
Date: Mon, 30 Jun 2025 17:57:08 +0200
|
||||
Subject: [PATCH] core/transaction: do not attempt to log "n/a" as a journal
|
||||
field
|
||||
|
||||
Follow-up for 3cf6a3a3d4acf8347ccd0250274f517e6b2e9fe6
|
||||
|
||||
(cherry picked from commit 1c8d653d2b8a82ed3944f03c2dea25ad1e2cc967)
|
||||
|
||||
Related: RHEL-100353
|
||||
---
|
||||
src/core/transaction.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/core/transaction.c b/src/core/transaction.c
|
||||
index f61ab26bf8..f527fbf017 100644
|
||||
--- a/src/core/transaction.c
|
||||
+++ b/src/core/transaction.c
|
||||
@@ -412,7 +412,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
|
||||
log_struct(LOG_ERR,
|
||||
LOG_UNIT_MESSAGE(j->unit, "%s", cycle_path_text),
|
||||
LOG_MESSAGE_ID(SD_MESSAGE_UNIT_ORDERING_CYCLE_STR),
|
||||
- LOG_ITEM("%s", strna(unit_ids)));
|
||||
+ LOG_ITEM("%s", strempty(unit_ids)));
|
||||
|
||||
if (delete) {
|
||||
const char *status;
|
||||
@@ -425,7 +425,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
|
||||
LOG_MESSAGE_ID(SD_MESSAGE_DELETING_JOB_BECAUSE_ORDERING_CYCLE_STR),
|
||||
LOG_ITEM("DELETED_UNIT=%s", delete->unit->id),
|
||||
LOG_ITEM("DELETED_TYPE=%s", job_type_to_string(delete->type)),
|
||||
- LOG_ITEM("%s", strna(unit_ids)));
|
||||
+ LOG_ITEM("%s", strempty(unit_ids)));
|
||||
|
||||
if (log_get_show_color())
|
||||
status = ANSI_HIGHLIGHT_RED " SKIP " ANSI_NORMAL;
|
||||
@@ -445,7 +445,7 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
|
||||
LOG_UNIT_MESSAGE(j->unit, "Unable to break cycle starting with %s/%s",
|
||||
j->unit->id, job_type_to_string(j->type)),
|
||||
LOG_MESSAGE_ID(SD_MESSAGE_CANT_BREAK_ORDERING_CYCLE_STR),
|
||||
- LOG_ITEM("%s", strna(unit_ids)));
|
||||
+ LOG_ITEM("%s", strempty(unit_ids)));
|
||||
|
||||
return sd_bus_error_setf(e, BUS_ERROR_TRANSACTION_ORDER_IS_CYCLIC,
|
||||
"Transaction order is cyclic. See system logs for details.");
|
||||
24
systemd.spec
24
systemd.spec
@ -21,7 +21,7 @@
|
||||
Name: systemd
|
||||
Url: https://systemd.io
|
||||
Version: 252
|
||||
Release: 54%{?dist}
|
||||
Release: 55%{?dist}
|
||||
# For a breakdown of the licensing, see README
|
||||
License: LGPLv2+ and MIT and GPLv2+
|
||||
Summary: System and Service Manager
|
||||
@ -1282,6 +1282,16 @@ Patch1196: 1196-core-include-peak-memory-in-unit_log_resources.patch
|
||||
Patch1197: 1197-run-include-peak-memory-in-output.patch
|
||||
Patch1198: 1198-core-ensure-init.scope-is-realized-after-drop-ins-ha.patch
|
||||
Patch1199: 1199-core-add-possibility-to-not-track-certain-unit-types.patch
|
||||
Patch1200: 1200-tree-wide-check-more-log-message-format-in-log_struc.patch
|
||||
Patch1201: 1201-build-add-some-coloring-to-version-output.patch
|
||||
Patch1202: 1202-core-output-log-cycle-path-in-one-log-message-not-ma.patch
|
||||
Patch1203: 1203-core-make-log-cycle-messages-recognizable-via-messag.patch
|
||||
Patch1204: 1204-core-change-ordering-cycle-log-message-log-levels.patch
|
||||
Patch1205: 1205-core-cast-log_oom-got-void.patch
|
||||
Patch1206: 1206-core-when-removing-a-job-from-a-transaction-include-.patch
|
||||
Patch1207: 1207-catalog-add-entries-for-the-order-cycle-log-messages.patch
|
||||
Patch1208: 1208-tree-wide-check-more-log-message-format-in-log_struc.patch
|
||||
Patch1209: 1209-core-transaction-do-not-attempt-to-log-n-a-as-a-jour.patch
|
||||
|
||||
# Downstream-only patches (9000–9999)
|
||||
|
||||
@ -2159,6 +2169,18 @@ systemd-hwdb update &>/dev/null || :
|
||||
%{_prefix}/lib/dracut/modules.d/70rhel-net-naming-sysattrs/*
|
||||
|
||||
%changelog
|
||||
* Fri Aug 15 2025 systemd maintenance team <systemd-maint@redhat.com> - 252-55
|
||||
- tree-wide: check more log message format in log_struct() and friends (RHEL-100353)
|
||||
- build: add some coloring to --version output (RHEL-100353)
|
||||
- core: output log cycle path in one log message, not many (RHEL-100353)
|
||||
- core: make log cycle messages recognizable via message IDs (RHEL-100353)
|
||||
- core: change ordering cycle log message log levels (RHEL-100353)
|
||||
- core: cast log_oom() got void (RHEL-100353)
|
||||
- core: when removing a job from a transaction, include in structured log message which (RHEL-100353)
|
||||
- catalog: add entries for the order cycle log messages (RHEL-100353)
|
||||
- tree-wide: check more log message format in log_struct() and friends (RHEL-100353)
|
||||
- core/transaction: do not attempt to log "n/a" as a journal field (RHEL-100353)
|
||||
|
||||
* Wed Aug 13 2025 systemd maintenance team <systemd-maint@redhat.com> - 252-54
|
||||
- unit: add conditions and deps to make oomd.socket and .service consistent (RHEL-90417)
|
||||
- udev/net_id: introduce naming scheme for RHEL-9.7 (RHEL-25516)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user