Bug#929072: systemd: Dependency propagation on units inconsistent during start
Drexl Johannes
johannes.drexl at lrz.de
Thu May 16 12:21:53 BST 2019
Package: systemd
Version: 232-25+deb9u11
Severity: normal
Dear Maintainer,
during a more complicated setup of different services we found something
odd when starting single branches. Minimal setup to reproduce:
Service 0 is the root service (Wants services 1, 2, 3)
Services 1, 2 and 3 are services that depend on service 0 (Requires) and
will start after service 0
Service 1 wants service 10
Service 10 depends on service 1 (Requires) and starts after service 1.
Starting service 0 will start all services up as expected. Stopping
service 0 will stop all services accordingly. Everything works fine so
far.
Now stop all services except service 0. Then start service 1. It will
start up, with service 10 after it. Services 2 and 3 will stay down.
This is expected behavior.
Once again stop all services except service 0, and then start service 2.
One would now expect two running services: service 0 and service 2. But
you will find that service 1 was also started, as well as its child
service 10. Only service 3 remains down.
You may as well try starting service 3 instead of service 2, which will
yield a similar result, i. e. only service 2 stays down; services 1 and
10 will be up again.
We tried that on SLES 12.4 as well as Debian Buster, this behavior
sticks through all versions and is consistent throughout our 20+
services setup: All branches with further branches down the line are
getting started, all dead-end branches will remain down. It doesn't
really break anything on our end, it's just unexpected.
My proposal: Unless the root service is (re-) started, don't propagate
through its 'Wants' statements (I expect the error there). Only start up
the affected services and their wanted children.
-- Package-specific info:
-- System Information:
Debian Release: 9.9
APT prefers stable
APT policy: (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 4.9.0-9-amd64 (SMP w/8 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages systemd depends on:
ii adduser 3.115
ii libacl1 2.2.52-3+b1
ii libapparmor1 2.11.0-3+deb9u2
ii libaudit1 1:2.6.7-2
ii libblkid1 2.29.2-1+deb9u1
ii libc6 2.24-11+deb9u4
ii libcap2 1:2.25-1
ii libcryptsetup4 2:1.7.3-4
ii libgcrypt20 1.7.6-2+deb9u3
ii libgpg-error0 1.26-2
ii libidn11 1.33-1
ii libip4tc0 1.6.0+snapshot20161117-6
ii libkmod2 23-2
ii liblz4-1 0.0~r131-2+b1
ii liblzma5 5.2.2-1.2+b1
ii libmount1 2.29.2-1+deb9u1
ii libpam0g 1.1.8-3.6
ii libseccomp2 2.3.1-2.1+deb9u1
ii libselinux1 2.6-3+b3
ii libsystemd0 232-25+deb9u11
ii mount 2.29.2-1+deb9u1
ii procps 2:3.3.12-3+deb9u1
ii util-linux 2.29.2-1+deb9u1
Versions of packages systemd recommends:
ii dbus 1.10.26-0+deb9u1
ii libpam-systemd 232-25+deb9u11
Versions of packages systemd suggests:
ii policykit-1 0.105-18+deb9u1
pn systemd-container <none>
pn systemd-ui <none>
Versions of packages systemd is related to:
pn dracut <none>
ii initramfs-tools 0.130
ii udev 232-25+deb9u11
-- Configuration Files:
/etc/systemd/timesyncd.conf changed [not included]
-- no debconf information
More information about the Pkg-systemd-maintainers
mailing list