From a9cee8f4de5588166a4d4a9ca2f31ee995e25aab Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Fri, 21 Mar 2025 15:06:28 +0100 Subject: [PATCH] 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. --- src/core/manager.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; -- 2.47.3