job: 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.

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

(cherry picked from commit 20a83d7bf4)

Conflicts:
	src/core/job.c

(cherry picked from commit 39cdf9313c)

Conflicts:
	src/core/job.c

This includes the fixup in ae6feb2a01.
This commit is contained in:
Brandon Philips
2014-06-17 10:09:35 -04:00
committed by Zbigniew Jędrzejewski-Szmek
parent 38ca51efdd
commit fca7e7a4d9
+3
View File
@@ -1070,6 +1070,9 @@ int job_coldplug(Job *j) {
.events = EPOLLIN,
};
if (j->state == JOB_WAITING)
job_add_to_run_queue(j);
if (j->timer_watch.type != WATCH_JOB_TIMER)
return 0;