Bug #48891
closedcephadm does not set required dependencies in systemd
0%
Description
cephadm does not set the dependency list correctly. This leads to race conditions. Example:
In our environment we use docker as container-provider. A service (general problem, not limited to specific type) created by cephadm does not depend on the management daemon. This leads to the output in journald-mgr-leftovers.log.
Looking into the state of the docker daemon shows that it was not running at that time. It seemed like ceph.target was started before docker, but the scripts of the daemons require in our case docker to run.
A workaround is to add docker.service to the dependency list of each service using `systemctl edit ceph-<fsid>@<service-id>.service` using following content:
[Unit] After=docker.service Requires=docker.service
After that, ceph came up successfully at every reboot done since then. As cephadm officially supports podman, i'm not able to provide a PR (simply not knowing the structure of podman). The line where to add the service would be [[https://github.com/ceph/ceph/blob/892c51dd3c5f7108e766bea30cd5e0d801b0abd3/src/cephadm/cephadm#L2722]].
Files