Upgrade to 3.1.0 fails when dhcpd.leases is from 3.0.4

Ola Sandstad ola at tantec.no
Thu Mar 13 10:14:36 UTC 2008


Hi!

As a system integrator we currently run ~40 sites using ISC DHCPd. The 
Linux distro is Ubuntu 6.10 (not upgraded to later versions by different 
reasons).

I've successfully compiled and installed the 3.1.0 version on many of 
these sites, though some are running 3.0.4. (self-compiled)

We're installing a replacement-server for a customer, and during the 
setup of 3.1.0, we hit a show-stopper. The dhcpd.conf and dhcpd.leases 
used are from the existing system, which is running 3.0.4.
dhcpd.leases is what's causing the problem. Using a freshly touched 
dhcpd.leases, everything functions as it should. (using the existing 
dhcpd.conf). Trying to start dhcpd using the existing dhcpd.leases 
results in a

*** glibc detected *** /usr/sbin/dhcpd: munmap_chunk(): invalid pointer: 
0x080d7f47 ***
[snip]

I've read through the changelogs and see that are changes done to 
dhcpd.leases from 3.0.4 to 3.1.0, but can not find any information about 
special procedures to follow when upgrading.

The dhcpd.leases is 1.3MB.

I hope there's something "#¤"# simple step/limitation(?) I've overlooked..

Looking forward to your reply!

Best regards,
Ola

here's the gdb output:
 

tt:/etc# gdb /usr/sbin/dhcpd
GNU gdb 6.4.90-debian
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain 
conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...Using host libthread_db 
library "/lib/tls/i686/cmov/libthread_db.so.1".

(gdb) run
Starting program: /usr/sbin/dhcpd
Internet Systems Consortium DHCP Server V3.1.0
Copyright 2004-2007 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
data: hardware: raw packet not available
*** glibc detected *** /usr/sbin/dhcpd: munmap_chunk(): invalid pointer: 
0x080d7f47 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6(__libc_free+0x18a)[0xb7e5cb4a]
/usr/sbin/dhcpd[0x80bd511]
/usr/sbin/dhcpd[0x80a3c28]
/usr/sbin/dhcpd[0x8098c2d]
/usr/sbin/dhcpd[0x80a4de7]
/usr/sbin/dhcpd[0x806f79c]
/usr/sbin/dhcpd[0x80bd993]
/usr/sbin/dhcpd[0x807a8f5]
/usr/sbin/dhcpd[0x8076997]
/usr/sbin/dhcpd[0x8058b3f]
/usr/sbin/dhcpd[0x8058897]
/usr/sbin/dhcpd[0x8062704]
/usr/sbin/dhcpd[0x804af92]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xdc)[0xb7e0b8cc]
/usr/sbin/dhcpd[0x8049fc1]
======= Memory map: ========
08048000-080e2000 r-xp 00000000 08:01 721911     /usr/sbin/dhcpd
080e2000-080e7000 rwxp 0009a000 08:01 721911     /usr/sbin/dhcpd
080e7000-083b3000 rwxp 080e7000 00:00 0          [heap]
b7311000-b731b000 r-xp 00000000 08:01 409616     /lib/libgcc_s.so.1
b731b000-b731c000 rwxp 00009000 08:01 409616     /lib/libgcc_s.so.1
b731c000-b7dea000 rwxp b731c000 00:00 0
b7dea000-b7df3000 r-xp 00000000 08:01 409633     
/lib/tls/i686/cmov/libnss_files-2.4.so
b7df3000-b7df5000 rwxp 00008000 08:01 409633     
/lib/tls/i686/cmov/libnss_files-2.4.so
b7df5000-b7df6000 rwxp b7df5000 00:00 0
b7df6000-b7f23000 r-xp 00000000 08:01 409624     
/lib/tls/i686/cmov/libc-2.4.so
b7f23000-b7f25000 r-xp 0012c000 08:01 409624     
/lib/tls/i686/cmov/libc-2.4.so
b7f25000-b7f27000 rwxp 0012e000 08:01 409624     
/lib/tls/i686/cmov/libc-2.4.so
b7f27000-b7f2a000 rwxp b7f27000 00:00 0
b7f2e000-b7f30000 rwxp b7f2e000 00:00 0
b7f30000-b7f49000 r-xp 00000000 08:01 412256     /lib/ld-2.4.so
b7f49000-b7f4b000 rwxp 00018000 08:01 412256     /lib/ld-2.4.so
bfc7b000-bfc91000 rw-p bfc7b000 00:00 0          [stack]
ffffe000-fffff000 ---p 00000000 00:00 0          [vdso]

Program received signal SIGABRT, Aborted.
0xffffe410 in __kernel_vsyscall ()
(gdb) bt
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7e1f770 in raise () from /lib/tls/i686/cmov/libc.so.6
#2  0xb7e20ef3 in abort () from /lib/tls/i686/cmov/libc.so.6
#3  0xb7e54d0b in __fsetlocking () from /lib/tls/i686/cmov/libc.so.6
#4  0xb7e5cb4a in free () from /lib/tls/i686/cmov/libc.so.6
#5  0x080bd511 in dfree (ptr=0x80d7f47, file=0x80da788 "options.c", 
line=2003) at alloc.c:202
#6  0x080a3c28 in option_dereference (dest=0x8343c04, file=0x80da788 
"options.c", line=2003) at tables.c:627
#7  0x08098c2d in option_cache_dereference (ptr=0x8343ae8, 
file=0x80ddfa9 "alloc.c", line=150) at options.c:2003
#8  0x080a4de7 in option_chain_head_dereference (ptr=0x820093c, 
file=0x80d695c "mdb.c", line=844) at alloc.c:149
#9  0x0806f79c in dhcp_lease_destroy (h=0x82008e4, file=0x80d695c 
"mdb.c", line=844) at omapi.c:426
#10 0x080bd993 in omapi_object_dereference (h=0xbfc8e42c, file=0x80d695c 
"mdb.c", line=844) at alloc.c:698
#11 0x0807a8f5 in lease_dereference (ptr=0xbfc8e42c, file=0x80d695c 
"mdb.c", line=844) at salloc.c:143
#12 0x08076997 in enter_lease (lease=0x8118c88) at mdb.c:844
#13 0x08058b3f in lease_file_subparse (cfile=0x80f5540) at confpars.c:265
#14 0x08058897 in read_conf_file (filename=0x80d1bd8 
"/var/state/dhcp/dhcpd.leases", group=0x0, group_type=0, leasep=1) at 
confpars.c:168
#15 0x08062704 in db_startup (testp=0) at db.c:788
#16 0x0804af92 in main (argc=1, argv=0xbfc8e704, envp=0xbfc8e70c) at 
dhcpd.c:507
(gdb)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.isc.org/pipermail/dhcp-users/attachments/20080313/ff61e286/attachment.html>


More information about the dhcp-users mailing list