From 995c5e96cdf9e6054a4df04960253d897f4d7cc2 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 14 Oct 2015 16:22:22 +0200 Subject: 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. --- src/core/busname.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/core/busname.c b/src/core/busname.c index 38becfc119..b85fce5f8d 100644 --- a/src/core/busname.c +++ b/src/core/busname.c @@ -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; -- cgit v1.2.3-54-g00ecf