From 95f08deefa7c0611854d2831960e77be9a814969 Mon Sep 17 00:00:00 2001 From: Michal Sekletar Date: Wed, 2 Apr 2014 15:13:18 +0200 Subject: [PATCH] unit: add waiting jobs to run queue in unit_coldplug When we have job installed and added to run queue for service which is still in dead state and systemd initiates reload then after reload we never add deserialized job to the run queue again. This is caused by check in service_coldplug() where we check if deserialized state is something else than dead state, which is not the case thus we never call service_set_state() and finally unit_notify() where we would have added job to the run queue. --- src/core/unit.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/core/unit.c b/src/core/unit.c index 6ee34ec..a4e6c18 100644 --- a/src/core/unit.c +++ b/src/core/unit.c @@ -2539,6 +2539,9 @@ int unit_coldplug(Unit *u) { r = job_coldplug(u->job); if (r < 0) return r; + + if (u->job->state == JOB_WAITING) + job_add_to_run_queue(u->job); } else if (u->deserialized_job >= 0) { /* legacy */ r = manager_add_job(u->manager, u->deserialized_job, u, JOB_IGNORE_REQUIREMENTS, false, NULL, NULL);