From 4481c9ff6513b5ef0e328d82e44caa0b5efe9bae Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 30 Jan 2026 21:34:02 +0900 Subject: [PATCH] machine: skip reading properties through DBus when not connected When machined is started earlier than DBus service, the execution is blocked by reading properties through DBus for a while. Let's return earlier if the DBus connection is not ready. Fixes issue reported in #40414. --- src/machine/machined-dbus.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/machine/machined-dbus.c b/src/machine/machined-dbus.c index 398cd0e1915..f2f6a300e3c 100644 --- a/src/machine/machined-dbus.c +++ b/src/machine/machined-dbus.c @@ -1642,6 +1642,12 @@ int manager_unit_is_active(Manager *manager, const char *unit, sd_bus_error *ret assert(manager); assert(unit); + r = sd_bus_is_ready(manager->api_bus); + if (r < 0) + return r; + if (r == 0) + return -ENOTCONN; + path = unit_dbus_path_from_name(unit); if (!path) return -ENOMEM; @@ -1682,6 +1688,12 @@ int manager_job_is_active(Manager *manager, const char *path, sd_bus_error *rete assert(manager); assert(path); + r = sd_bus_is_ready(manager->api_bus); + if (r < 0) + return r; + if (r == 0) + return -ENOTCONN; + r = sd_bus_get_property( manager->api_bus, "org.freedesktop.systemd1", -- 2.47.3