X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Funit.c;h=a2953a6bcb801abfb5683a4d6c34aac24a08146e;hp=68eba69c6adf5061b11260fd391209816617b126;hb=efbac6d29c374696fba8f501b6f080e79584cc94;hpb=e6402d1077499d741ea747bbaaba51856d00219b diff --git a/src/unit.c b/src/unit.c index 68eba69c6..a2953a6bc 100644 --- a/src/unit.c +++ b/src/unit.c @@ -1211,7 +1211,7 @@ void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool reload_su retroactively_stop_dependencies(u); } - if (ns != os && ns == UNIT_FAILED) { + if (ns != os && ns == UNIT_FAILED && u->meta.manager->n_deserializing <= 0) { log_notice("Unit %s entered failed state.", u->meta.id); unit_trigger_on_failure(u); } @@ -2180,6 +2180,8 @@ int unit_deserialize(Unit *u, FILE *f, FDSet *fds) { log_debug("Failed to parse condition result value %s", v); else u->meta.condition_result = b; + + continue; } if ((r = UNIT_VTABLE(u)->deserialize_item(u, l, v, fds)) < 0)