From 2fdc70c68048c6883323e4d1d6ef3ab34913478b Mon Sep 17 00:00:00 2001 From: Andrew Geissler Date: Fri, 18 Jan 2019 11:00:48 -0600 Subject: Ensure ipmid doesn't start until on dbus Other services rely on phosphor-ipmi-host providing needed dbus interfaces once its been started. Due to other services providing identical dbus object paths, the normal mapper wait services are not an option here. Ensure systemd does not consider this service active until it has registered the host control dbus object. I'm working on a long term fix to this in https://gerrit.openbmc-project.xyz/#/c/openbmc/phosphor-objmgr/+/17990/ (a refactor with unit tests) and https://gerrit.openbmc-project.xyz/#/c/openbmc/phosphor-objmgr/+/17837/ (close race condition due to introspection) but I think this change here makes things better overall so I'd like to get it merged Testing: Verified systemd now waits for ipmid to really get up and running and ran through HW CI Jan 18 19:56:00 witherspoon systemd[1]: Starting Phosphor Inband IPMI... Jan 18 19:56:03 witherspoon ipmid[1336]: JSON file not found Jan 18 19:56:09 witherspoon systemd[1]: Started Phosphor Inband IPMI. I had our internal test team try out this patch on a Romulus. They were seeing this issue this is trying to fix on a very regular basis. With this change, they completed 265 successful boot tests. The ipmid process does host 2 well-know names, openbmc_project.Ipmi.Host and xyz.openbmc_project.Control.Host. I verified via a bus capture that xyz.openbmc_project.Control.Host is the last one to be put on the bus. Resolves openbmc/phosphor-state-manager#2 (From meta-phosphor rev: bea22141ca95b38f30adcec248a853d3d268af79) Change-Id: I532b31647951045adc8cbd0141e8630cdc350e27 Signed-off-by: Andrew Geissler Signed-off-by: Brad Bishop --- .../recipes-phosphor/ipmi/phosphor-ipmi-host/phosphor-ipmi-host.service | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/phosphor-ipmi-host.service b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/phosphor-ipmi-host.service index 74f8218a9c..29d4967978 100644 --- a/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/phosphor-ipmi-host.service +++ b/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-host/phosphor-ipmi-host.service @@ -21,6 +21,8 @@ SyslogIdentifier=ipmid RuntimeDirectory = ipmi RuntimeDirectoryPreserve = yes StateDirectory = ipmi +Type=dbus +BusName=xyz.openbmc_project.Control.Host [Install] WantedBy={SYSTEMD_DEFAULT_TARGET} -- cgit v1.2.3