systemd/0165-core-job-never-consider-reload-jobs-redundant.patch
Jan Macku 1e3185a7aa systemd-257-5
Resolves: RHEL-71409
2025-02-03 14:56:43 +01:00

35 lines
1.3 KiB
Diff

From 1e7b1ce928f2fd62ac63299851124aaf977f48d4 Mon Sep 17 00:00:00 2001
From: Mike Yuan <me@yhndnzj.com>
Date: Wed, 22 Jan 2025 19:36:27 +0100
Subject: [PATCH] core/job: never consider reload jobs redundant
Follow-up for 656bbffc6c45bdd8d5c28a96ca948ba16c546547
The commit reworked job merging logic so that reload jobs
won't get merged. However, they might get dropped from
transaction due to being deemed redundant, i.e. way before
it even hits job_install(). Let's make sure reload jobs
are always kept during transaction construction stage, too.
(cherry picked from commit 7b940d8de91aeba6fa171eb42b690fa95641f29e)
---
src/core/job.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/core/job.c b/src/core/job.c
index 8fbbe757fe..c6c736cc6f 100644
--- a/src/core/job.c
+++ b/src/core/job.c
@@ -448,9 +448,8 @@ bool job_type_is_redundant(JobType a, UnitActiveState b) {
return IN_SET(b, UNIT_ACTIVE, UNIT_RELOADING, UNIT_REFRESHING);
case JOB_RELOAD:
- return
- b == UNIT_RELOADING;
-
+ /* Reload jobs are never consider redundant/duplicate. Refer jobs_may_late_merge() for
+ * a detailed justification. */
case JOB_RESTART:
/* Restart jobs must always be kept.
*