From: Zbigniew Jędrzejewski-Szmek Date: Fri, 21 Mar 2025 14:06:28 +0000 (+0100) Subject: core/manager: do not exclude watchdog logic from busy-loop protection X-Git-Tag: v258-rc1~1012^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a9cee8f4de5588166a4d4a9ca2f31ee995e25aab;p=thirdparty%2Fsystemd.git 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. --- diff --git a/src/core/manager.c b/src/core/manager.c index 45f3464dd44..afccb48d7ed 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -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;