]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core: add debug log when a job in the activation queue is not runnable 15526/head
authorLuca Boccassi <luca.boccassi@microsoft.com>
Tue, 21 Apr 2020 16:28:01 +0000 (17:28 +0100)
committerLuca Boccassi <luca.boccassi@microsoft.com>
Wed, 22 Apr 2020 08:58:12 +0000 (09:58 +0100)
When a job is skipped due its dependencies not being ready, log
a debug message saying what is holding it back.
This was very useful with transient units timing out to figure
out where the problem was.

src/core/job.c

index 2114889d326b3a3a11a6e303e3f25e189b08db51..cf3bca88d63043c59d24c91ccac5ab768cc914f2 100644 (file)
@@ -516,12 +516,20 @@ static bool job_is_runnable(Job *j) {
                 return true;
 
         HASHMAP_FOREACH_KEY(v, other, j->unit->dependencies[UNIT_AFTER], i)
-                if (other->job && job_compare(j, other->job, UNIT_AFTER) > 0)
+                if (other->job && job_compare(j, other->job, UNIT_AFTER) > 0) {
+                        log_unit_debug(j->unit,
+                                       "starting held back, waiting for: %s",
+                                       other->id);
                         return false;
+                }
 
         HASHMAP_FOREACH_KEY(v, other, j->unit->dependencies[UNIT_BEFORE], i)
-                if (other->job && job_compare(j, other->job, UNIT_BEFORE) > 0)
+                if (other->job && job_compare(j, other->job, UNIT_BEFORE) > 0) {
+                        log_unit_debug(j->unit,
+                                       "stopping held back, waiting for: %s",
+                                       other->id);
                         return false;
+                }
 
         return true;
 }