static void automount_enter_dead(Automount *a, AutomountResult f) {
assert(a);
- if (a->result == AUTOMOUNT_SUCCESS)
+ if (a->result == AUTOMOUNT_SUCCESS || IN_SET(f, AUTOMOUNT_FAILURE_MOUNT_START_LIMIT_HIT, AUTOMOUNT_FAILURE_START_LIMIT_HIT))
a->result = f;
unit_log_result(UNIT(a), a->result == AUTOMOUNT_SUCCESS, automount_result_to_string(a->result));
static void mount_enter_dead(Mount *m, MountResult f, bool flush_result) {
assert(m);
- if (m->result == MOUNT_SUCCESS || flush_result)
+ if (m->result == MOUNT_SUCCESS || f == MOUNT_FAILURE_START_LIMIT_HIT || flush_result)
m->result = f;
unit_log_result(UNIT(m), m->result == MOUNT_SUCCESS, mount_result_to_string(m->result));
static void path_enter_dead(Path *p, PathResult f) {
assert(p);
- if (p->result == PATH_SUCCESS)
+ if (p->result == PATH_SUCCESS || IN_SET(f, PATH_FAILURE_START_LIMIT_HIT, PATH_FAILURE_UNIT_START_LIMIT_HIT))
p->result = f;
unit_log_result(UNIT(p), p->result == PATH_SUCCESS, path_result_to_string(p->result));
if (unit_stop_pending(UNIT(s)))
allow_restart = false;
- if (s->result == SERVICE_SUCCESS)
+ if (s->result == SERVICE_SUCCESS || f == SERVICE_FAILURE_START_LIMIT_HIT)
s->result = f;
if (s->result == SERVICE_SUCCESS) {
static void socket_enter_dead(Socket *s, SocketResult f) {
assert(s);
- if (s->result == SOCKET_SUCCESS)
+ if (s->result == SOCKET_SUCCESS || IN_SET(f, SOCKET_FAILURE_SERVICE_START_LIMIT_HIT, SOCKET_FAILURE_START_LIMIT_HIT))
s->result = f;
if (s->result == SOCKET_SUCCESS)
static void swap_enter_dead(Swap *s, SwapResult f) {
assert(s);
- if (s->result == SWAP_SUCCESS)
+ if (s->result == SWAP_SUCCESS || f == SWAP_FAILURE_START_LIMIT_HIT)
s->result = f;
unit_log_result(UNIT(s), s->result == SWAP_SUCCESS, swap_result_to_string(s->result));
static void timer_enter_dead(Timer *t, TimerResult f) {
assert(t);
- if (t->result == TIMER_SUCCESS)
+ if (t->result == TIMER_SUCCESS || f == TIMER_FAILURE_START_LIMIT_HIT)
t->result = f;
unit_log_result(UNIT(t), t->result == TIMER_SUCCESS, timer_result_to_string(t->result));
done
systemctl is-failed issue3166-fail-on-restart.service || exit 1
[[ "$(systemctl show --value --property NRestarts issue3166-fail-on-restart.service)" -le 3 ]] || exit 1
+[[ "$(systemctl show --value --property Result issue3166-fail-on-restart.service)" = "start-limit-hit" ]] || exit 1