mirror of
https://github.com/morgan9e/systemd
synced 2026-04-15 00:47:10 +09:00
core/manager: do not exclude watchdog logic from busy-loop protection
As reported in https://github.com/systemd/systemd/issues/35405, if the watchdog ping failed, we effectively started a busy loop here. The previous commits should fix this, but in general, the protection here is intended as a safety net in case the logic is broken somewhere else. We shouldn't exclude the watchdog stuff from this.
This commit is contained in:
@@ -3352,14 +3352,14 @@ int manager_loop(Manager *m) {
|
||||
|
||||
while (m->objective == MANAGER_OK) {
|
||||
|
||||
(void) watchdog_ping();
|
||||
|
||||
if (!ratelimit_below(&rl)) {
|
||||
/* Yay, something is going seriously wrong, pause a little */
|
||||
log_warning("Looping too fast. Throttling execution a little.");
|
||||
sleep(1);
|
||||
}
|
||||
|
||||
(void) watchdog_ping();
|
||||
|
||||
if (manager_dispatch_load_queue(m) > 0)
|
||||
continue;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user