How Somebody Helped Kill dhcpd on Our Network
David W. Hankins
David_Hankins at isc.org
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
outstanding.
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