Failover problem with 4.2 on FreeBSD
sthaug at nethelp.no
sthaug at nethelp.no
Thu Nov 25 20:29:58 UTC 2010
> I have a problem with a test installation of version 4.2, with failover
> active, on FreeBSD.
> I have tested it against FreeBSD 6.x and 8.x, with both chrooted daemon and
> without chroot,with the same results:
I believe this problem isn't specific to failover configurations. A
little investigation here with 4.1.2 and 4.2.0 both in standalone
configurations on a FreeBSD 7.2-STABLE system:
- 4.2.0 with -d runs okay. 4.2.0 without -d runs in an infinite kevent
loop. ktrace shows:
40776 dhcpd RET kevent -1 errno 9 Bad file descriptor
40776 dhcpd CALL kevent(0x3,0,0,0x2859e800,0x40,0)
40776 dhcpd GIO fd 3 wrote 0 bytes
""
40776 dhcpd RET kevent -1 errno 9 Bad file descriptor
40776 dhcpd CALL kevent(0x3,0,0,0x2859e800,0x40,0)
40776 dhcpd GIO fd 3 wrote 0 bytes
""
(ad nauseam)
and the process uses all the available CPU time.
- As far as I can see this is caused by the use of the new libisc.a
code. kevent is referenced in bind/bind-9.7.1/lib/isc/unix/socket.c,
which is part of the bind/lib/libisc.a library in the 4.2.0 code.
- 4.2.0, with or without the -d option, has two extra UDP sockets
open compared to 4.1.2. My guess (which hasn't been verified) is that
these are also due to the libisc.a use. Notice the two high numbered
ports here:
sthaug at lab1% sockstat | grep dhcp
root dhcpd 40842 4 dgram -> /var/run/logpriv
root dhcpd 40842 8 udp4 *:67 *:*
root dhcpd 40842 20 udp4 *:35288 *:*
root dhcpd 40842 21 udp6 *:50090 *:*
which are not present when running 4.1.2:
sthaug at lab1% sockstat | grep dhcp
root dhcpd 40828 3 dgram -> /var/run/logpriv
root dhcpd 40828 7 udp4 *:67 *:*
My conclusion is that 4.2.0 is unfortunately not usable on FreeBSD
until this bug is fixed.
Steinar Haug, Nethelp consulting, sthaug at nethelp.no
More information about the dhcp-users
mailing list