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
(cherry picked from commit
4c2ef3276735ad9f7fccf33f5bdcbe7d8751e7ec)
(cherry picked from commit
14164ec6bc7779201e6ea16c8e8ccff4f98bb4cd)
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 */