Commit 90527fbb authored by Michael Olbrich's avatar Michael Olbrich Committed by Zbigniew Jędrzejewski-Szmek
Browse files

service: make sure the watchdog timer is not restarted while stopping

A watchdog notification may be handled after the watchdog timer was stopped
while stopping the service. As a result the timer is restarted and the
service may be restarted as well.
The watchdog timestamp is initially set during startup in
service_enter_start_post() and cleared when the timer is stopped. Therefore
it can be used as an indication if the timer should be reset.
parent 6d594baa
......@@ -3400,7 +3400,8 @@ static void service_notify_message(Unit *u, pid_t pid, char **tags) {
if (strv_find(tags, "WATCHDOG=1")) {
log_debug_unit(u->id,
"%s: got WATCHDOG=1", u->id);
service_reset_watchdog(s);
if (dual_timestamp_is_set(&s->watchdog_timestamp))
service_reset_watchdog(s);
}
/* Notify clients about changed status or main pid */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment