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.
This commit is contained in:
Yu Watanabe
2026-01-31 01:23:26 +09:00
parent 579640f50c
commit 4481c9ff65
+12
View File
@@ -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",