How Somebody Helped Kill dhcpd on Our Network

David W. Hankins David_Hankins at
Mon Jul 31 16:12:12 UTC 2006

On Mon, Jul 31, 2006 at 08:03:20AM -0500, Martin McCormick wrote:
> about 2,500 "out of memory" messages and then dhcpd finally
> exited with a 11) SIGSEG and a core dump.  Good old FreeBSD unix

Can you give me a 'where' on 'gdb /path/to/dhcpd /path/to/dhcpd.core'?

My guess on why dhcpd used more memory is you have ping-check
enabled, and for every client being sent back to it on a DISCOVER,
it had to enter into the scheduler another delayed ACK.

I think we could (should) put a limit on how many ping-checks are

Anyway, to verify that, what you want to do is again on your
gdb prompt have a look at the scheduler's task list:

	print *timeouts

I'd expect to see the 'func' struct member be 'lease_ping_timeout'
more often than not.  To get a feel for how many are queued, try
looking at ->next pointers:

	print *timeouts->next

	print *timeouts->next->next

	print *timeouts->next->next->next

If they're (generally) all lease_ping_timeout, then I think
that's the most likely culprit.

David W. Hankins	"If you don't do it right the first time,
Software Engineer		you'll just have to do it again."
Internet Systems Consortium, Inc.	-- Jack T. Hankins

More information about the dhcp-users mailing list