dhcp-4.2.0rc1 crashing

Sean R. McNamara sean.r.mcnamara at dartmouth.edu
Fri Sep 24 17:59:30 UTC 2010


  Hi All,

We've been running into cases where our DHCP server is crashing.    
We're running dhcp-4.2.0rc1 configured as follows:

./configure --prefix=/usr/local/dhcpd/dhcpd-4.2.0rc1 --sysconfdir=/etc 
--localstatedir=/var --with-srv-lease-file=/var/lib/dhcpd/dhcpd.leases 
--with-srv6-lease-file=/var/lib/dhcpd/dhcpd6.leases 
--with-cli-lease-file=/var/db/dhclient.leases 
--with-cli6-lease-file=/var/db/dhclient6.leases --with-libbind 
--enable-paranoia

It seems there are two cases where we're getting crashes.  One where 
dhcpd fails with a SIGSEGV, another where it fails with SIGABRT.   I've 
been able to capture data surrounding both types of crashes

The SIGABRT coincides with the following error:

../../../lib/dns/client.c:2831: REQUIRE((((uctx) != ((void *)0)) && 
(((const isc__magic_t *)(uctx))->magic == ((('U') << 24 | ('c') << 16 | 
('t') << 8 | ('x')))))) failed, back trace
#0 0x8176a89 in ??
#1 0x8176c67 in ??
#2 0x80c45ec in ??
#3 0x8094da3 in ??
#4 0x8094fee in ??
#5 0x80c2c9a in ??
#6 0x804cfeb in ??
#7 0x6dfe9c in ??
#8 0x804a291 in ??
Aborted

The SIGSEGV has even less detail.   An strace shows the last few calls 
being:

gettimeofday({1285348745, 8864}, NULL)  = 0
read(6, 
"\0PV\201\25\234\0\f\317(\250\0\10\0E\0\2 at j\262@\0=\21I1\201\252\177q\201\252\5\4\0D\0C\2,\227M\1\1\6\0<\207D<\0\0\0\0\201\252\177q\0\0\0\0\0\0\0\0\0\0\0\0\0\31\333\343\\\254\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0c\202Sc5\1\3=\7\1\0\31\333\343\\\254<\vvfurnaceSTB7\t\1\3\6\f\17\34()*\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 
1536) = 590
time(NULL)                              = 1285348745
write(4, "\0\0\0\7\0\0\2TL\234\335\211\306\236\1\0", 16) = 16
write(4, 
"\0\0\0\0\0\0\0\4\201\252\177qA2\t\10\334\237\6\v\273\315\34\10\0D\7\1\0\f\317(\250\0\10\v\354\0\0\0\370=\276\277\1-y\0", 
48) = 48
write(4, 
"\1\1\6\0<\207D<\0\0\0\0\201\252\177q\0\0\0\0\0\0\0\0\0\0\0\0\0\31\333\343\\\254\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0c\202Sc5\1\3=\7\1\0\31\333\343\\\254<\vvfurnaceSTB7\t\1\3\6\f\17\34()*\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 
548) = 548
write(4, "\0\0\0\0", 4)                 = 4
--- SIGSEGV (Segmentation fault) @ 0 (0) ---


I'm wondering whether or not those nulls have something to do with it.

They also show up prior to the SIGABRT:

gettimeofday({1285343347, 59214}, NULL) = 0
read(6, 
"\0PV\201\25\234\0\f\317(\250\0\10\0E\0\2@\246-@\0=\21\r\276\201\252\177i\201\252\5\4\0D\0C\2,\210\4\1\1\6\0\367\37\217@\0\0\0\0\201\252\177i\0\0\0\0\0\0\0\0\0\0\0\0\0\31\333\343a\212\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0c\202Sc5\1\3=\7\1\0\31\333\343a\212<\vvfurnaceSTB7\t\1\3\6\f\17\34()*\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 
1536) = 590
time(NULL)                              = 1285343347
write(4, "\0\0\0\7\0\0\2TL\234\310s\230\35\30\v", 16) = 16
write(4, 
"\0\0\0\0\0\0\0\4\201\252\177i\267\257\30\10,\375\210\277\344\t\362\267\0D\7\1\0\f\317(\250\0\362\267\6\0\3\0008\375\210\277\1\354\210\277", 
48) = 48
write(4, 
"\1\1\6\0\367\37\217@\0\0\0\0\201\252\177i\0\0\0\0\0\0\0\0\0\0\0\0\0\31\333\343a\212\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0c\202Sc5\1\3=\7\1\0\31\333\343a\212<\vvfurnaceSTB7\t\1\3\6\f\17\34()*\377\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 
548) = 548
write(4, "\0\0\0\0", 4)                 = 4
open("/etc/ld.so.cache", O_RDONLY)      = 12
fstat64(12, {st_dev=makedev(253, 0), st_ino=1768195, 
st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, 
st_blocks=88, st_size=41307, st_atime=2010/09/24-11:48:56, 
st_mtime=2010/09/23-12:10:43, st_ctime=2010/09/24-01:41:02}) = 0
mmap2(NULL, 41307, PROT_READ, MAP_PRIVATE, 12, 0) = 0xb7e76000
close(12)                               = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 12
read(12, 
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`v\256\0004\0\0\0|\261\0\0\0\0\0\0004\0 
\0\5\0(\0\36\0\35\0\1\0\0\0\0\0\0\0\0`\256\0\0`\256\0|\251\0\0|\251\0\0\5\0\0\0\0\20\0\0\1\0\0\0|\251\0\0|\31\257\0|\31\257\0\234\1\0\0\310\2\0\0\6\0\0\0\0\20\0\0\2\0\0\0\224\251\0\0\224\31\257\0\224\31\257\0\330\0\0\0\330\0\0\0\6\0\0\0\4\0\0\0P\345td\244\225\0\0\244\365\256\0\244\365\256\0\f\4\0\0\f\4\0\0\4\0\0\0\4\0\0\0Q\345td\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0\0\0\4\0\0\0C\0\0\0\20\0\0\0\20\0\0\0\t\0\0\0\3b` 
\20/\20`\0\0\7\4\204\0\202\210\0\4\221\4\214\10j\1\300\10\306\10\1\32\20\264O\20\222\f\22\f\n\211P\4\356\30\202\10\2\6\356\341+\255G\0G$\6\243-qvj#4\20\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\22\0\0\0\25\0\0\0\30\0\0\0\0\0\0\0\33\0\0\0\34\0\0\0\35\0\0\0\36\0\0\0\37\0\0\0 
\0\0\0\"\0\0\0#\0\0\0%\0\0\0(\0\0\0,\0\0\0-\0\0\0/\0\0\0001\0\0\0005\0\0\0007\0\0\0008\0\0\0:\0\0\0;\0\0\0\0\0\0\0\0\0\0\0<\0\0\0=\0\0\0?\0\0\0@\0\0\0\0\0\0\0A\0\0\0\0\0\0\0C\0\0\0\0\0\0\0\0\0\0\0D\0\0\0F\0\0\0H\0\0\0I\0\0\0L\0\0\0M\0\0\0N\0\0\0O\0\0\0R\0\0\0\0\0\0\0\0\0\0\0S\0\0\0\0\0\0\0U\0\0\0X\0\0\0Y\0\0\0", 
512) = 512
fstat64(12, {st_dev=makedev(253, 0), st_ino=6058680, 
st_mode=S_IFREG|0755, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, 
st_blocks=96, st_size=46636, st_atime=2010/09/24-11:49:07, 
st_mtime=2009/12/09-16:15:49, st_ctime=2010/09/24-01:41:08}) = 0
mmap2(0xae6000, 48196, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 
12, 0) = 0xae6000
mmap2(0xaf1000, 4096, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 12, 0xa) = 0xaf1000
close(12)                               = 0
munmap(0xb7e76000, 41307)               = 0
write(2, "../../../lib/dns/client.c:2802: REQUIRE((((uctx) != ((void 
*)0)) && (((const isc__magic_t *)(uctx))->magic == ((('U') << 24 | ('c') 
<< 16 | ('t') << 8 | ('x')))))) failed, back trace\n", 183) = 183
write(2, "#0 0x8176a89 in ??\n", 19)    = 19
write(2, "#1 0x8176c67 in ??\n", 19)    = 19
write(2, "#2 0x80c7099 in ??\n", 19)    = 19
write(2, "#3 0x8092d53 in ??\n", 19)    = 19
write(2, "#4 0x80796d7 in ??\n", 19)    = 19
write(2, "#5 0x8052214 in ??\n", 19)    = 19
write(2, "#6 0x805567c in ??\n", 19)    = 19
write(2, "#7 0x805622d in ??\n", 19)    = 19
write(2, "#8 0x809ff95 in ??\n", 19)    = 19
write(2, "#9 0x8090d76 in ??\n", 19)    = 19
write(2, "#10 0x80bc196 in ??\n", 20)   = 20
write(2, "#11 0x8197cb2 in ??\n", 20)   = 20
write(2, "#12 0x819dd69 in ??\n", 20)   = 20
write(2, "#13 0x818d013 in ??\n", 20)   = 20
write(2, "#14 0x818d278 in ??\n", 20)   = 20
write(2, "#15 0x8092c53 in ??\n", 20)   = 20
write(2, "#16 0x804c3f6 in ??\n", 20)   = 20
write(2, "#17 0x6dfe9c in ??\n", 19)    = 19
write(2, "#18 0x804a291 in ??\n", 20)   = 20
rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0
tgkill(15452, 15452, SIGABRT)           = 0
--- SIGABRT (Aborted) @ 0 (0) ---


I have full strace output and dhcp trace files for each failure type.   
I'd appreciate any assistance or advice the group could offer.   Has any 
one else run into similar issues?     Is there an official way to submit 
a bug report?

Thank you for your help,

..Sean.







-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3258 bytes
Desc: S/MIME Cryptographic Signature
URL: <https://lists.isc.org/pipermail/dhcp-users/attachments/20100924/54fdbcd9/attachment.bin>


More information about the dhcp-users mailing list