Package: release.debian.org
Severity: wishlist
User: release.debian....@packages.debian.org
Usertags: unblock
X-Debbugs-Cc: pkg-systemd-maintain...@lists.alioth.debian.org

Would you be willing to let the systemd maintainers cherry-pick the
attached into a jessie-targeted version?

It is a trivial change (escalate the level of a log line from info to
warning) and would make it much easier to diagnose and fix circular
dependencies between units. At the moment, systemd logs the first unit
in the cycle and the points at which it tried breaking the cycle,
but the other units involved are not logged unless 'debug' or
a non-default 'systemd.log_level' is present on the kernel command-line.

    S
>From 14fe721b5f6d8457cc8737fa75f2ed79e7fa534b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbys...@in.waw.pl>
Date: Sun, 2 Nov 2014 12:10:42 -0500
Subject: [PATCH] Raise level of 'Found dependency...' lines

This way they always show up together with 'Found ordering cycle...'.
Ordering cycles are a serious error and a major pain to debug. If
quiet is enabled, only the first and the last line of output are
shown:

systemd[1]: Found ordering cycle on basic.target/start
systemd[1]: Breaking ordering cycle by deleting job timers.target/start
systemd[1]: Job timers.target/start deleted to break ordering cycle starting with basic.target/start

which isn't particularly enlightening. So just show the whole message
at the same level.

Bug-RedHat: https://bugzilla.redhat.com/show_bug.cgi?id=1158206
Bug-Debian: https://bugs.debian.org/770504
Origin: upstream, 218, commit:14fe721b5f6d
---
 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 488cb86..bbaa6da 100644
--- a/src/core/transaction.c
+++ b/src/core/transaction.c
@@ -376,9 +376,9 @@ static int transaction_verify_order_one(Transaction *tr, Job *j, Job *from, unsi
                 for (k = from; k; k = ((k->generation == generation && k->marker != k) ? k->marker : NULL)) {
 
                         /* logging for j not k here here to provide consistent narrative */
-                        log_info_unit(j->unit->id,
-                                      "Found dependency on %s/%s",
-                                      k->unit->id, job_type_to_string(k->type));
+                        log_warning_unit(j->unit->id,
+                                         "Found dependency on %s/%s",
+                                         k->unit->id, job_type_to_string(k->type));
 
                         if (!delete && hashmap_get(tr->jobs, k->unit) &&
                             !unit_matters_to_anchor(k->unit, k)) {
-- 
2.1.3

Reply via email to