Public bug reported:

This affects both 4.3.3-5ubuntu8 that exists in xenial right now and
4.3.3-5ubuntu9 which I just uploaded to fix another bug.

With the move to systemd service file, 'sudo systemctl stop isc-dhcp-
server.service' just hangs. Here is the service file (from
4.3.3-5ubuntu9):

[Unit]
Description=ISC DHCP IPv4 server
Documentation=man:dhcpd(8)
Wants=network-online.target
After=network-online.target
After=time-sync.target
ConditionPathExists=/etc/default/isc-dhcp-server
ConditionPathExists=|/etc/ltsp/dhcpd.conf
ConditionPathExists=|/etc/dhcp/dhcpd.conf

[Service]
EnvironmentFile=/etc/default/isc-dhcp-server
RuntimeDirectory=dhcp-server
# The leases files need to be root:dhcpd even when dropping privileges
ExecStart=/bin/sh -ec '\
    CONFIG_FILE=/etc/dhcp/dhcpd.conf; \
    if [ -f /etc/ltsp/dhcpd.conf ]; then CONFIG_FILE=/etc/ltsp/dhcpd.conf; fi; \
    [ -e /var/lib/dhcp/dhcpd.leases ] || touch /var/lib/dhcp/dhcpd.leases; \
    chown root:dhcpd /var/lib/dhcp /var/lib/dhcp/dhcpd.leases; \
    chmod 775 /var/lib/dhcp ; chmod 664 /var/lib/dhcp/dhcpd.leases; \
    exec dhcpd -user dhcpd -group dhcpd -f -4 -pf /run/dhcp-server/dhcpd.pid 
-cf $CONFIG_FILE $INTERFACES'

[Install]
WantedBy=multi-user.target


Eg:
$ sudo systemctl stop isc-dhcp-server.service
<hangs>

wait long enough and systemd will KILL it. In the logs:
Mar  1 10:58:14 sec-xenial-amd64 systemd[1]: isc-dhcp-server.service: State 
'stop-sigterm' timed out. Killing.
Mar  1 10:58:14 sec-xenial-amd64 systemd[1]: isc-dhcp-server.service: Main 
process exited, code=killed, status=9/KILL
Mar  1 10:58:14 sec-xenial-amd64 systemd[1]: isc-dhcp-server.service: Unit 
entered failed state.
Mar  1 10:58:14 sec-xenial-amd64 systemd[1]: isc-dhcp-server.service: Failed 
with result 'signal'.


Things I tried to resolve it, none of which worked:
 * add Type=forking
 * add Type=forking and remove '-f' from the dhcpd exec
 * adjust /run/dhcp-server to be root:root and 755
 * adjust /run/dhcp-server to be dhcpd:dhcpd and 755 (this was in 
4.3.3-5ubuntu8 but fails to create a pid file and was fixed in 4.3.3-5ubuntu9)
 * adjust /run/dhcp-server to be root:dhcpd and 775
 * add Type=forking and remove '-f' from the dhcpd exec and use 
KillSignal=SIGINT (see https://wiki.archlinux.org/index.php/Dhcpd#Service_file)


This bug is not related to AppArmor. With 4.3.3-5ubuntu9 this bug persists and 
there are no apparmor denials. Furthermore, if I disable the apparmor profile, 
the bug persists.

** Affects: isc-dhcp (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1551855

Title:
  [xenial] systemctl hangs when stopping isc-dhcp-server

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/isc-dhcp/+bug/1551855/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to