1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2024-12-25 23:21:33 +03:00

manager: fix connecting to bus when dbus is actually around (#7205)

manager_connect_bus() is called *before* manager_coldplug(). As a last
thing in service_coldplug() we set service state to
s->deserialized_state, and thus before we do that all services are
inactive and try_connect always evaluates to false. To fix that we must
look at deserialized state instead of current unit state.

Fixes #7146
This commit is contained in:
Michal Sekletar 2017-11-01 02:25:48 -07:00 committed by Zbigniew Jędrzejewski-Szmek
parent 723afa4f96
commit 41dfa61d35

View File

@ -934,7 +934,7 @@ static int manager_connect_bus(Manager *m, bool reexecuting) {
u = manager_get_unit(m, SPECIAL_DBUS_SERVICE);
try_bus_connect =
(u && UNIT_IS_ACTIVE_OR_RELOADING(unit_active_state(u))) &&
(u && SERVICE(u)->deserialized_state == SERVICE_RUNNING) &&
(reexecuting ||
(MANAGER_IS_USER(m) && getenv("DBUS_SESSION_BUS_ADDRESS")));