#971275 isc-dhcp-server-ldap: fails to activate the service

Package:
isc-dhcp-server-ldap
Source:
isc-dhcp
Description:
DHCP server that uses LDAP as its backend
Submitter:
Wolfgang Schweer
Date:
2025-05-13 14:09:01 UTC
Severity:
important
#971275#5
Date:
2020-09-28 16:59:43 UTC
From:
To:
Dear Maintainer,

while working on Debian Edu Bullseye, I noticed that the DHCP service
stopped working after upgrading the system.

Reason seems to be that the init script timed out, maybe
/etc/default/isc-dhcp-server could not be sourced:

root@tjener:~# service isc-dhcp-server status
* isc-dhcp-server.service - LSB: DHCP server
     Loaded: loaded (/etc/init.d/isc-dhcp-server; generated)
     Active: activating (start) since Mon 2020-09-28 18:24:25 CEST; 2min 36s ago
       Docs: man:systemd-sysv-generator(8)
Cntrl PID: 1280 (isc-dhcp-server)
      Tasks: 8 (limit: 4671)
     Memory: 17.6M
     CGroup: /system.slice/isc-dhcp-server.service
             |-1280 /bin/sh /etc/init.d/isc-dhcp-server start
             `-1310 /usr/sbin/dhcpd -t -4 -q -cf /etc/dhcp/dhcpd.conf

Sep 28 18:24:25 tjener.intern systemd[1]: Starting LSB: DHCP server...
Sep 28 18:24:26 tjener.intern isc-dhcp-server[1280]: Launching IPv4 server only.

The installed version:

root@tjener:~# dpkg -l isc-dhcp-server-ldap
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                 Version      Architecture Description
+++-====================-============-============-=========================================
ii  isc-dhcp-server-ldap 4.4.1-2.1+b2 amd64        DHCP server that uses LDAP as its backend

I was wondering if downgrading to the Buster version would help:

root@tjener:~# apt install isc-dhcp-server-ldap/buster
Reading package lists... Done
Building dependency tree
Reading state information... Done
Selected version '4.4.1-2' (Debian:10.6/stable [amd64]) for 'isc-dhcp-server-ldap'
Selected version '4.4.1-2' (Debian:10.6/stable [amd64]) for 'isc-dhcp-server' because of 'isc-dhcp-server-ldap'
The following additional packages will be installed:
  isc-dhcp-server
Suggested packages:
  policykit-1
The following packages will be DOWNGRADED:
  isc-dhcp-server isc-dhcp-server-ldap
0 upgraded, 0 newly installed, 2 downgraded, 0 to remove and 0 not upgraded.
Need to get 994 kB of archives.
After this operation, 22.5 kB disk space will be freed.
Do you want to continue? [Y/n]
Get:1 http://ftp.debian.org/debian buster/main amd64 isc-dhcp-server-ldap amd64 4.4.1-2 [446 kB]
Get:2 http://ftp.debian.org/debian buster/main amd64 isc-dhcp-server amd64 4.4.1-2 [548 kB]
Fetched 994 kB in 0s (7729 kB/s)
Preconfiguring packages ...
dpkg: warning: downgrading isc-dhcp-server-ldap from 4.4.1-2.1+b2 to 4.4.1-2
(Reading database ... 259124 files and directories currently installed.)
Preparing to unpack .../isc-dhcp-server-ldap_4.4.1-2_amd64.deb ...
Unpacking isc-dhcp-server-ldap (4.4.1-2) over (4.4.1-2.1+b2) ...
dpkg: warning: downgrading isc-dhcp-server from 4.4.1-2.1+b2 to 4.4.1-2
Preparing to unpack .../isc-dhcp-server_4.4.1-2_amd64.deb ...
invoke-rc.d: policy-rc.d denied execution of stop.
Unpacking isc-dhcp-server (4.4.1-2) over (4.4.1-2.1+b2) ...
Setting up isc-dhcp-server (4.4.1-2) ...
invoke-rc.d: policy-rc.d denied execution of start.
Setting up isc-dhcp-server-ldap (4.4.1-2) ...
Processing triggers for systemd (246.6-1) ...
Processing triggers for man-db (2.9.3-2) ...

It did so (process 1310 stems from the Bullseye version):

root@tjener:~# service isc-dhcp-server stop
root@tjener:~# service isc-dhcp-server start
root@tjener:~# service isc-dhcp-server status
* isc-dhcp-server.service - LSB: DHCP server
     Loaded: loaded (/etc/init.d/isc-dhcp-server; generated)
     Active: active (running) since Mon 2020-09-28 18:27:57 CEST; 4s ago
       Docs: man:systemd-sysv-generator(8)
    Process: 3264 ExecStart=/etc/init.d/isc-dhcp-server start (code=exited, status=0/SUCCESS)
      Tasks: 8 (limit: 4671)
     Memory: 27.4M
     CGroup: /system.slice/isc-dhcp-server.service
             |-1310 /usr/sbin/dhcpd -t -4 -q -cf /etc/dhcp/dhcpd.conf
             `-3277 /usr/sbin/dhcpd -4 -q -cf /etc/dhcp/dhcpd.conf eth0 eth1

Sep 28 18:27:55 tjener.intern systemd[1]: Starting LSB: DHCP server...
Sep 28 18:27:55 tjener.intern isc-dhcp-server[3264]: Launching IPv4 server only.
Sep 28 18:27:55 tjener.intern dhcpd[3277]: Wrote 3 leases to leases file.
Sep 28 18:27:55 tjener.intern dhcpd[3277]: Server starting service.
Sep 28 18:27:57 tjener.intern isc-dhcp-server[3264]: Starting ISC DHCPv4 server: dhcpd.
Sep 28 18:27:57 tjener.intern systemd[1]: Started LSB: DHCP server.
root@tjener:~#


Wolfgang

#971275#14
Date:
2021-06-04 12:08:51 UTC
From:
To:
[ Wolfgang Schweer, 2020-09-28 ]

[..]

This isn't the case; it seems that testing the configurations is the
cause.

I've found two ways to work around this issue:

(1) Commenting the related code in /etc/init.d/isc-dhcp-server

test_config()
{
	VERSION="$1"
	CONF="$2"

	#if ! /usr/sbin/dhcpd -t $VERSION -q -cf "$CONF" > /dev/null 2>&1; then
	#	echo "dhcpd self-test failed. Please fix $CONF."
	#	echo "The error was: "
	#	/usr/sbin/dhcpd -t $VERSION -cf "$CONF"
	#	exit 1
	#fi
}

and adjusting related lines in /etc/default/isc-dhcp-server (for a
Debian Edu combined server with two network interfaces as an example):

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#	Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACESv4="eth0 eth1"
#INTERFACESv6=""
---------------------- (2) Use a systemd unit file /etc/systemd/system/isc-dhcp-server.service [Unit] Description=DHCP server After=network.target network-online.target Requires=slapd.service [Service] Type=forking RestartSec=2s Restart=on-failure ExecStartPre=-/usr/bin/touch /var/lib/dhcp/dhcpd.leases ExecStart=/usr/sbin/dhcpd -4 -q -cf /etc/dhcp/dhcpd.conf [Install] WantedBy=multi-user.target
--------------------- Please note that I'm no expert, I guess the unit file could be improved. Wolfgang
#971275#19
Date:
2025-05-13 13:53:36 UTC
From:
To:
Tried your work around (1) and failed, activating both, INTERFACESv4=""
and INTERFACESv6="" for eth0. Worked, when only activating
INTERFACESv4="" for eth0. Wondered if changes in
/etc/init.d/isc-dhcp-server are necessary: For me, they're not! Only
activating INTERFACESv4="" for eth0 in /etc/default/isc-dhcp-server does
the trick. BUT: I  changed to systemv-init during installation of debianedu!