Skip to content

Commit eecf4f7

Browse files
authored
Merge pull request #15526 from bluca/start_stop_wait_debug
Add debug log when a job in the activation queue is not runnable
2 parents 9df91db + c03fbd3 commit eecf4f7

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

src/core/job.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -516,12 +516,20 @@ static bool job_is_runnable(Job *j) {
516516
return true;
517517

518518
HASHMAP_FOREACH_KEY(v, other, j->unit->dependencies[UNIT_AFTER], i)
519-
if (other->job && job_compare(j, other->job, UNIT_AFTER) > 0)
519+
if (other->job && job_compare(j, other->job, UNIT_AFTER) > 0) {
520+
log_unit_debug(j->unit,
521+
"starting held back, waiting for: %s",
522+
other->id);
520523
return false;
524+
}
521525

522526
HASHMAP_FOREACH_KEY(v, other, j->unit->dependencies[UNIT_BEFORE], i)
523-
if (other->job && job_compare(j, other->job, UNIT_BEFORE) > 0)
527+
if (other->job && job_compare(j, other->job, UNIT_BEFORE) > 0) {
528+
log_unit_debug(j->unit,
529+
"stopping held back, waiting for: %s",
530+
other->id);
524531
return false;
532+
}
525533

526534
return true;
527535
}

src/core/unit.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -883,8 +883,9 @@ int unit_can_clean(Unit *u, ExecCleanMask *ret_mask);
883883
#define log_unit_full(unit, level, error, ...) \
884884
({ \
885885
const Unit *_u = (unit); \
886-
_u ? log_object_internal(level, error, PROJECT_FILE, __LINE__, __func__, _u->manager->unit_log_field, _u->id, _u->manager->invocation_log_field, _u->invocation_id_string, ##__VA_ARGS__) : \
887-
log_internal(level, error, PROJECT_FILE, __LINE__, __func__, ##__VA_ARGS__); \
886+
(log_get_max_level() < LOG_PRI(level)) ? -ERRNO_VALUE(error) : \
887+
_u ? log_object_internal(level, error, PROJECT_FILE, __LINE__, __func__, _u->manager->unit_log_field, _u->id, _u->manager->invocation_log_field, _u->invocation_id_string, ##__VA_ARGS__) : \
888+
log_internal(level, error, PROJECT_FILE, __LINE__, __func__, ##__VA_ARGS__); \
888889
})
889890

890891
#define log_unit_debug(unit, ...) log_unit_full(unit, LOG_DEBUG, 0, ##__VA_ARGS__)

0 commit comments

Comments
 (0)