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