Reloading services can result in a deadlock under systemd
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
samba (Debian) |
Fix Released
|
Unknown
|
|||
systemd (Debian) |
Fix Released
|
Unknown
|
|||
systemd (Ubuntu) |
Fix Released
|
High
|
Martin Pitt | ||
sysvinit (Debian) |
Fix Released
|
Unknown
|
|||
sysvinit (Ubuntu) |
Fix Released
|
Medium
|
Martin Pitt |
Bug Description
since today (although haven't rebooted in a few days), systemd init is hanging trying to bring up ifup@eth0. I had to revert to upstart boot to get in, although sometimes it would successfully boot with systemd.debug-shell
JOB UNIT TYPE STATE
120 winbind.service start waiting
175 nmbd.service start waiting
159 libvirt-bin.service start waiting
151 dns-clean.service start waiting
116 vmware-
177 smbd.service start waiting
178 fail2ban.service start waiting
331 rpcbind.service start waiting
109 apache2.service start waiting
124 openvpn.service start waiting
184 x-display-
173 vmware.service start waiting
143 <email address hidden> start waiting
141 samba-ad-dc.service start waiting
2 multi-user.target start waiting
332 rpcbind.target start waiting
108 hddtemp.service start waiting
172 plymouth-
152 autofs.service start waiting
123 schroot.service start waiting
130 mail-transport-
129 postfix.service start waiting
128 isc-dhcp-
131 mysql.service start waiting
142 getty.target start waiting
164 sabnzbdplus.service start waiting
1 graphical.target start waiting
176 apt-cacher-
183 gdm.service start waiting
174 ssh.service start waiting
77 network-
112 systemd-
133 urfkill.service start waiting
111 kerneloops.service start waiting
161 rc-local.service start waiting
106 lxc.service start waiting
107 lxc-net.service start waiting
155 virtualbox.service start waiting
191 <email address hidden> start running
50 network.target start waiting
40 jobs listed.
* <email address hidden> - ifup for eth0
Loaded: loaded (/lib/systemd/
Active: activating (start-post) since Mon 2015-02-02 19:17:25 AEDT; 9min ago
Process: 800 ExecStart=
Main PID: 800 (code=exited, status=0/SUCCESS); : 803 (ifup)
CGroup: /<email address hidden>
|- 803 /sbin/ifup --allow=auto eth0
|- 832 /bin/sh -c dhclient -1 -v -pf /run/dhclient.
|- 833 dhclient -1 -v -pf /run/dhclient.
|-1269 /bin/sh /sbin/dhclient-
|-1273 /bin/sh /usr/sbin/
`-1294 systemctl reload smbd.service
Feb 02 19:17:25 duhast dhclient[833]: Sending on Socket/fallback
Feb 02 19:17:25 duhast dhclient[833]: DHCPREQUEST of 192.168.15.67 on eth0 to 255.255.255.255 port 67 (xid=0x502572c4)
Feb 02 19:17:25 duhast ifup[803]: Listening on LPF/eth0/
Feb 02 19:17:25 duhast ifup[803]: Sending on LPF/eth0/
Feb 02 19:17:25 duhast ifup[803]: Sending on Socket/fallback
Feb 02 19:17:25 duhast ifup[803]: DHCPREQUEST of 192.168.15.67 on eth0 to 255.255.255.255 port 67 (xid=0x502572c4)
Feb 02 19:17:28 duhast dhclient[833]: DHCPREQUEST of 192.168.15.67 on eth0 to 255.255.255.255 port 67 (xid=0x502572c4)
Feb 02 19:17:28 duhast ifup[803]: DHCPREQUEST of 192.168.15.67 on eth0 to 255.255.255.255 port 67 (xid=0x502572c4)
Feb 02 19:17:28 duhast dhclient[833]: DHCPACK of 192.168.15.67 from 192.168.15.1
Feb 02 19:17:28 duhast ifup[803]: DHCPACK of 192.168.15.67 from 192.168.15.1
ProblemType: Bug
DistroRelease: Ubuntu 15.04
Package: systemd 218-6ubuntu1
ProcVersionSign
Uname: Linux 3.18.0-12-generic x86_64
NonfreeKernelMo
ApportVersion: 2.15.1-0ubuntu4
Architecture: amd64
CurrentDesktop: GNOME
Date: Mon Feb 2 19:47:21 2015
InstallationDate: Installed on 2012-09-23 (862 days ago)
InstallationMedia: Ubuntu GNOME Remix 12.10 "Quantal Quetzal" - Alpha amd64(20120922)
MachineType: Gigabyte Technology Co., Ltd. P67A-UD3R-B3
ProcKernelCmdLine: BOOT_IMAGE=
SourcePackage: systemd
SystemdDelta:
[EXTENDED] /lib/systemd/
1 overridden configuration files found.
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 03/21/2012
dmi.bios.vendor: Award Software International, Inc.
dmi.bios.version: F9
dmi.board.name: P67A-UD3R-B3
dmi.board.vendor: Gigabyte Technology Co., Ltd.
dmi.board.version: x.x
dmi.chassis.type: 3
dmi.chassis.vendor: Gigabyte Technology Co., Ltd.
dmi.modalias: dmi:bvnAwardSof
dmi.product.name: P67A-UD3R-B3
dmi.sys.vendor: Gigabyte Technology Co., Ltd.
Related branches
summary: |
- systemd init gets stuck reloading smbd.service + Reloading services can result in a deadlock under systemd |
Changed in systemd (Ubuntu): | |
status: | Triaged → In Progress |
Changed in samba (Ubuntu): | |
milestone: | none → ubuntu-15.04 |
milestone: | ubuntu-15.04 → none |
Changed in systemd (Ubuntu): | |
milestone: | none → ubuntu-15.03 |
Changed in samba (Debian): | |
status: | Unknown → Fix Committed |
tags: | added: patch |
Changed in sysvinit (Debian): | |
status: | Unknown → New |
Changed in samba (Debian): | |
status: | Fix Committed → New |
Changed in systemd (Debian): | |
status: | Unknown → New |
Changed in systemd (Ubuntu): | |
status: | In Progress → Fix Committed |
Changed in sysvinit (Ubuntu): | |
status: | Triaged → Fix Committed |
Changed in systemd (Debian): | |
status: | New → Fix Committed |
Changed in systemd (Debian): | |
status: | Fix Committed → Fix Released |
Changed in sysvinit (Debian): | |
status: | New → Fix Committed |
Changed in sysvinit (Debian): | |
status: | Fix Committed → Fix Released |
Changed in samba (Debian): | |
status: | New → Fix Released |
It seems this is a dependency loop:
(1) network- online. target waits for <email address hidden> as it's in /etc/network/ interfaces online. target
(2) <email address hidden> starts during boot, triggered by udev; through samba's smbd dhclient-enter hook it calls invoke-rc.d smbd reload
(3) /etc/init.d/smbd has "Requires: $network"
(4) the SysV generator translates $network to network-
We really want (1), (2) and (3) are justified. According to http:// refspecs. linuxbase. org/LSB_ 4.1.0/LSB- Core-generic/ LSB-Core- generic/ facilname. html, $network should be mapped to network.service, not network- online. service. If others disagree and $network should have the "strong" is-online meaning, we need to fix it at (3) instead, e. g. by adding a proper systemd unit to samba. (We should really teach socket activation to stuff..)