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:
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user