mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-12-25 23:21:33 +03:00
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.
This commit is contained in:
parent
6d594baa3f
commit
90527fbb2c
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user