RESOLVED: dhcpd sporadically ignoring one of two "copies" of a DHCP request
p.mayers at imperial.ac.uk
Tue Mar 11 19:15:05 UTC 2014
On 11/03/14 17:57, Phil Mayers wrote:
> On 11/03/14 16:43, Phil Mayers wrote:
>> What's really odd is that further investigation suggests there is some
>> link to the "seconds" field in the bootp header; if secs==0, the 2nd
>> DISCOVER is ignored. If secs!=0, it's answered.
> Actually that might be a red herring; closer investigation suggests that
> it's actually timing/path-dependent:
Digging into the source code I found the cause; apparently we had
"ping-check" on (!) and, if you do that, the lease is allocated but not
ACKed until the ping has timed out.
While that's happening, lease->state is set, and ack_lease() has a
short-circuit return (with no logging; sigh) that drops the 2nd reply.
If I read the code path right the same thing would happen with delayed ack.
More information about the dhcp-users