chiark / gitweb /
job: add waiting jobs to run queue in unit_coldplug
authorBrandon Philips <brandon@ifup.co>
Fri, 25 Apr 2014 15:31:59 +0000 (09:31 -0600)
committermsekleta <msekleta@systemd-devel-vm.default>
Sat, 26 Apr 2014 15:59:14 +0000 (17:59 +0200)
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.

Thanks to Michal Sekletar <msekleta@redhat.com> for the original patch.

src/core/job.c

index 35a9de6ee354a5ec230cc0b78fd549ec16eb1e53..835cfe173b1f093e85cb2eb19f3e9c91e5598291 100644 (file)
@@ -1066,6 +1066,9 @@ int job_coldplug(Job *j) {
         if (j->timer_event_source)
                 j->timer_event_source = sd_event_source_unref(j->timer_event_source);
 
+        if (j->state == JOB_WAITING)
+                job_add_to_run_queue(j);
+
         r = sd_event_add_time(
                         j->manager->event,
                         &j->timer_event_source,