From: Lennart Poettering Date: Thu, 9 Jan 2020 10:51:40 +0000 (+0100) Subject: core: propagate service state to socket in more load states X-Git-Tag: v245-rc1~156^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F14527%2Fhead;p=thirdparty%2Fsystemd.git core: propagate service state to socket in more load states It makes sense to filter state changes for some load states that shouldn't happen, but the common cases should be accepted, because they might happen during runtime when "systemctl daemon-reload" is issued and unit files changed state in between. Otherwise we lose events. Fixes: #4708 --- diff --git a/src/core/socket.c b/src/core/socket.c index fc5ee69c9c9..c587eaebed5 100644 --- a/src/core/socket.c +++ b/src/core/socket.c @@ -3257,7 +3257,12 @@ static void socket_trigger_notify(Unit *u, Unit *other) { assert(other); /* Filter out invocations with bogus state */ - if (other->load_state != UNIT_LOADED || other->type != UNIT_SERVICE) + if (!IN_SET(other->load_state, + UNIT_LOADED, + UNIT_NOT_FOUND, + UNIT_BAD_SETTING, + UNIT_ERROR, + UNIT_MASKED) || other->type != UNIT_SERVICE) return; /* Don't propagate state changes from the service if we are already down */