#1120537 isc-dhcp-client: dhclient exits uncleanly while DISCOVERing

Package:
isc-dhcp-client
Source:
isc-dhcp-client
Description:
DHCP client for automatically obtaining an IP address
Submitter:
Daniel Gröber
Date:
2026-08-05 17:33:19 UTC
Severity:
normal
#1120537#5
Date:
2025-11-11 20:38:46 UTC
From:
To:
Package: isc-dhcp-client
Version: 4.4.3-P1-2
X-Debbugs-CC: Thorsten Glaser <tglaser@b1-systems.de>, Simon Richter <sjr@debian.org>
Control: retitle -1 isc-dhcp-client: dhclient exits uncleanly while DISCOVERing

Actually. I still had a router running with dhclient on a bookworm system
and it just experienced this problem. The scenario is different from what I
remember though:

Just now a powercut caused a reboot and dhclient seems to have given up (or
crashed without leaving a trace in dmesg?) while the cable modem was still
booting.

I can see it tries to DISCOVER a couple of times, goes to sleep, tries
again but then it's not heard from again with no process left behind -
until I restarted the interface at 21:02.

    # journalctl -t dhclient
    17:17:24 dhclient[759]: Internet Systems Consortium DHCP Client 4.4.3-P1
    17:17:24 dhclient[759]: Copyright 2004-2022 Internet Systems Consortium.
    17:17:24 dhclient[759]: All rights reserved.
    17:17:24 dhclient[759]: For info, please visit https://www.isc.org/software/dhcp/
    17:17:24 dhclient[759]:
    17:17:25 dhclient[759]: Listening on LPF/enp1s0/00:0d:b9:4e:90:54
    17:17:25 dhclient[759]: Sending on   LPF/enp1s0/00:0d:b9:4e:90:54
    17:17:25 dhclient[759]: Sending on   Socket/fallback
    17:17:25 dhclient[759]: DHCPREQUEST for X.X.X.X on enp1s0 to 255.255.255.255 port 67
    17:17:30 dhclient[759]: DHCPREQUEST for X.X.X.X on enp1s0 to 255.255.255.255 port 67
    17:17:36 dhclient[759]: DHCPDISCOVER on enp1s0 to 255.255.255.255 port 67 interval 8
    17:17:44 dhclient[759]: DHCPDISCOVER on enp1s0 to 255.255.255.255 port 67 interval 10
    17:17:54 dhclient[759]: DHCPDISCOVER on enp1s0 to 255.255.255.255 port 67 interval 15
    17:18:09 dhclient[759]: DHCPDISCOVER on enp1s0 to 255.255.255.255 port 67 interval 7
    17:18:16 dhclient[759]: DHCPDISCOVER on enp1s0 to 255.255.255.255 port 67 interval 12
    17:18:28 dhclient[759]: DHCPDISCOVER on enp1s0 to 255.255.255.255 port 67 interval 9
    17:18:37 dhclient[759]: No DHCPOFFERS received.
    17:18:37 dhclient[759]: Trying recorded lease X.X.X.X
    17:18:40 dhclient[759]: No working leases in persistent database - sleeping.
    17:18:47 dhclient[759]: DHCPDISCOVER on enp1s0 to 255.255.255.255 port 67 interval 5
    17:18:52 dhclient[759]: DHCPDISCOVER on enp1s0 to 255.255.255.255 port 67 interval 10
    21:02:49 dhclient[38169]: Removed stale PID file

Curiously the "Removed stale PID file" would suggest to me that perhaps it
did crash or exit uncleanly somehow(?) since I can't see any segfault lines
in dmesg.

On dhcp release via ifdown /run/dhclient.enp1s0.pid does get removed
properly -- I checked.

I do have quite a bit of non-standard config on this system, but nothing in
/etc/dhcp/dhclient.conf that should prevent dhclient from retrying
forever.

I have a `retry` set to 10 seconds instead of the 5min default, use a
`reject 192.168.100.0/24` line to avoid using the temporary mmanagment LAN
the modem gives out leases for while it's still connecting to the CMTS and
`request` a reduced set of options.

Puzzling,
--Daniel

#1120537#12
Date:
2025-11-11 21:12:14 UTC
From:
To:
That’s roughly what I expect from dhclient, actually.
If there’s no DHCP response for $smallnum minutes after
the system come up, to give up and exit anyway, so the
boot process continues and the local admin can login on
the console and fix the situation (e.g. net.ifnames=0 on
the kernel command line and reboot to fix interface names).

That’s a bit puzzling, but cosmetic apparently.

Gruß
//Thorsten

#1120537#17
Date:
2025-11-12 14:53:44 UTC
From:
To:
Hi Torsten,

You're right it should not block ifup, that's why it forks into the
background to keep running in normal operation - which is what happened
here.

I just tried to reproduce this in a both a sid and bookworm debvm and the
behaviour is as I'd expect it forks into the background after $timeout and
keeps trying DISCOVER at $retry interval seemingly forever. I lowered all
of timeout/retry/reboot to 10s to observe multiple cycles.

To simulate the DHCP server not responding I used tc-netem - remember that
DHCP clients use raw sockets which bypass nftables:

    $ tc qdisc add dev enp0s2 root netem loss 100%
    $ ifup enp0s2; journalctl -t dhclient -f

#1120537#22
Date:
2026-08-05 17:31:09 UTC
From:
To:
Dear submitter,

as the package isc-dhcp has just been removed from the Debian archive
unstable we hereby close the associated bug reports.  We are sorry
that we couldn't deal with your issue properly.

For details on the removal, please see https://bugs.debian.org/1143544

The version of this package that was in Debian prior to this removal
can still be found using https://snapshot.debian.org/.

Please note that the changes have been done on the master archive and
will not propagate to any mirrors until the next dinstall run at the
earliest.

This message was generated automatically; if you believe that there is
a problem with it please contact the archive administrators by mailing
ftpmaster@ftp-master.debian.org.

Debian distribution maintenance software
pp.
Thorsten Alteholz (the ftpmaster behind the curtain)