core: log if the service to activate vanished before we activate it

Normally this shouldn't happen unless the daemon is reloaded.

A similar check is already in place in socket.c for the socket
activation case.

This hopefully makes #1526 non-fatal, though it will not fix this, and
there's something else to fix.
This commit is contained in:
Lennart Poettering 2015-10-14 16:22:22 +02:00
parent 9ea79b459e
commit 995c5e96cd

View file

@ -585,6 +585,12 @@ static void busname_enter_running(BusName *n) {
}
if (!pending) {
if (!UNIT_ISSET(n->service)) {
log_unit_error(UNIT(n), "Service to activate vanished, refusing activation.");
r = -ENOENT;
goto fail;
}
r = manager_add_job(UNIT(n)->manager, JOB_START, UNIT_DEREF(n->service), JOB_REPLACE, true, &error, NULL);
if (r < 0)
goto fail;