dhcpv6 leases file corruption

Shawn Routhier sar at isc.org
Wed Apr 6 17:50:40 UTC 2011


In older versions of the code we did not append the semi-colon to the
max-life and preferred-life lines and the parsing code didn't expect
one.  This didn't match the rest of the file so we modified the code
to append and expect the semi-colon.  Realizing that older lease
files would have this issue we print out the warning but accept those
lines without semi-colons.

However I would expect you to get the warnings only once as you
transition from an older version that doesn't print the semi-colons
to a newer version that does.

Shawn

On 04/05/2011 12:57, Rick Dicaire wrote:
> Hi folks, not sure if this is a bug or something I'm doing wrong.
> During the last two or three upgrades of dhcp, when starting the service I get:
>
> /usr/sbin/dhcpd -6 -cf /etc/dhcpd6.conf -lf /var/state/dhcp/dhcpd6.leases eth1
> Internet Systems Consortium DHCP Server 4.2.1-P1
> Copyright 2004-2011 Internet Systems Consortium.
> All rights reserved.
> For info, please visit https://www.isc.org/software/dhcp/
> /var/state/dhcp/dhcpd6.leases line 18: corrupt lease file; expecting semicolon.
>      preferred-life 2250
>                      ^
> /var/state/dhcp/dhcpd6.leases line 19: corrupt lease file; expecting semicolon.
>      max-life 3600
>                ^
> /var/state/dhcp/dhcpd6.leases line 31: corrupt lease file; expecting semicolon.
>      preferred-life 2250
>                      ^
> /var/state/dhcp/dhcpd6.leases line 32: corrupt lease file; expecting semicolon.
>      max-life 3600
>                ^
> /var/state/dhcp/dhcpd6.leases line 44: corrupt lease file; expecting semicolon.
>      preferred-life 2250
>                      ^
> /var/state/dhcp/dhcpd6.leases line 45: corrupt lease file; expecting semicolon.
>      max-life 3600
>                ^
> /var/state/dhcp/dhcpd6.leases line 54: corrupt lease file; expecting semicolon.
>      preferred-life 2250
>                      ^
> /var/state/dhcp/dhcpd6.leases line 55: corrupt lease file; expecting semicolon.
>      max-life 3600
>                ^
> /var/state/dhcp/dhcpd6.leases line 64: corrupt lease file; expecting semicolon.
>      preferred-life 2250
>                      ^
> /var/state/dhcp/dhcpd6.leases line 65: corrupt lease file; expecting semicolon.
>      max-life 3600
>                ^
> /var/state/dhcp/dhcpd6.leases line 76: corrupt lease file; expecting semicolon.
>      preferred-life 2250
>                      ^
> /var/state/dhcp/dhcpd6.leases line 77: corrupt lease file; expecting semicolon.
>      max-life 3600
>                ^
> /var/state/dhcp/dhcpd6.leases line 89: corrupt lease file; expecting semicolon.
>      preferred-life 2250
>                      ^
> /var/state/dhcp/dhcpd6.leases line 90: corrupt lease file; expecting semicolon.
>      max-life 3600
>                ^
> Wrote 0 deleted host decls to leases file.
> Wrote 0 new dynamic host decls to leases file.
> Wrote 0 leases to leases file.
> Bound to *:547
> Listening on Socket/5/eth1/LAN
> Sending on   Socket/5/eth1/LAN
>
> The contents of cat /var/state/dhcp/dhcpd6.leases~
> # The format of this file is documented in the dhcpd.leases(5) manual page.
> # This lease file was written by isc-dhcp-4.2.0-P2
>
> server-duid "\000\001\000\001\024\355d\360\000 5\347\331v";
>
> ia-na "\001\000\000\000\000\001\000\001\024\330\204\230\010\000'[ \363" {
>    cltt 0 2011/03/20 16:44:56;
> }
>
> ia-na "@\010\224'\000\001\000\001\024\355jX\010\000'\224\010@" {
>    cltt 3 2011/03/09 04:39:42;
> }
>
> ia-na "\001\000\000\000\000\001\000\001\024\352\033$\010\000'*\230\202" {
>    cltt 1 2011/03/28 01:49:55;
>    iaaddr 2001:470:8:12:9000::200 {
>      binding state active;
>      preferred-life 2250
>      max-life 3600
>      ends 1 2011/03/28 02:49:55;
>      set ddns-rev-name =
> "0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.9.2.1.0.0.8.0.0.0.0.7.4.0.1.0.0.2.ip6.arpa.";
>      set ddns-txt = "02ce74620e7758348976d8a9df6d7939d7";
>      set ddns-fwd-name = "vbox-ubuntu1010.dhcp6.kritek.net";
>    }
> }
>
> ia-na "\001\000\000\000\000\001\000\001\024\352\033$\010\000'*\230\202" {
>    cltt 1 2011/03/28 02:08:40;
>    iaaddr 2001:470:8:12:9000::200 {
>      binding state active;
>      preferred-life 2250
>      max-life 3600
>      ends 1 2011/03/28 03:08:40;
>      set ddns-rev-name =
> "0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.9.2.1.0.0.8.0.0.0.0.7.4.0.1.0.0.2.ip6.arpa.";
>      set ddns-txt = "02ce74620e7758348976d8a9df6d7939d7";
>      set ddns-fwd-name = "vbox-ubuntu1010.dhcp6.kritek.net";
>    }
> }
>
> ia-na "\001\000\000\000\000\001\000\001\024\352\033$\010\000'*\230\202" {
>    cltt 1 2011/03/28 02:18:29;
>    iaaddr 2001:470:8:12:9000::200 {
>      binding state released;
>      preferred-life 2250
>      max-life 3600
>      ends 1 2011/03/28 03:08:40;
>    }
> }
>
> ia-na "\001\000\000\000\000\001\000\001\024\352\033$\010\000'*\230\202" {
>    cltt 1 2011/03/28 02:19:36;
>    iaaddr 2001:470:8:12:9000::200 {
>      binding state active;
>      preferred-life 2250
>      max-life 3600
>      ends 1 2011/03/28 03:19:36;
>    }
> }
>
> ia-na "\001\000\000\000\000\001\000\001\024\352\033$\010\000'*\230\202" {
>    cltt 1 2011/03/28 02:19:36;
>    iaaddr 2001:470:8:12:9000::200 {
>      binding state active;
>      preferred-life 2250
>      max-life 3600
>      ends 1 2011/03/28 03:19:36;
>      set ddns-txt = "02ce74620e7758348976d8a9df6d7939d7";
>      set ddns-fwd-name = "vbox-ubuntu1010.dhcp6.kritek.net";
>    }
> }
>
> ia-na "\001\000\000\000\000\001\000\001\024\352\033$\010\000'*\230\202" {
>    cltt 1 2011/03/28 02:19:36;
>    iaaddr 2001:470:8:12:9000::200 {
>      binding state active;
>      preferred-life 2250
>      max-life 3600
>      ends 1 2011/03/28 03:19:36;
>      set ddns-rev-name =
> "0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.9.2.1.0.0.8.0.0.0.0.7.4.0.1.0.0.2.ip6.arpa.";
>      set ddns-txt = "02ce74620e7758348976d8a9df6d7939d7";
>      set ddns-fwd-name = "vbox-ubuntu1010.dhcp6.kritek.net";
>    }
> }
>
> ia-na "\001\000\000\000\000\001\000\001\024\352\033$\010\000'*\230\202" {
>    cltt 1 2011/03/28 02:24:30;
>    iaaddr 2001:470:8:12:9000::200 {
>      binding state released;
>      preferred-life 2250
>      max-life 3600
>      ends 1 2011/03/28 03:19:36;
>    }
> }
>
> Seems information is getting written to the leases file and missing
> the ending semi-colons?
>
> I don't know if this is due to the way I kill the dhcpd process (kill
> `cat /var/run/dhcpd6.pid`), or an actual bug in dhcpd.
>
> Thoughts?
>




More information about the dhcp-users mailing list