Solved 9.3-RELEASE-p24 ntp issues

freebsd-update had ntp security changes available this morning. Updated 9.3, but now run into some issues with ntpd.

ntpd throws some errors:
Code:
Oct 26 10:23:19 gabriella ntpd[6579]: giving up resolving host 0.freebsd.pool.ntp.org: servname not supported for ai_socktype (9)
This appears to be caused by a server entry in /etc/ntp.conf prior to the 0.freebsd entry. Removing the previous line (to my ISP's ntp server) causes this warning to go away as does putting the line last in the list.

ntpq aborts:
Code:
/usr/src/usr.sbin/ntp/libntp/../../../contrib/ntp/lib/isc/unix/net.c:221: fatal error: RUNTIME_CHECK(((pthread_once((&once), (initialize_action)) == 0) ? 0 : 34) == 0) failed
Abort (core dumped)

See also:
https://www.mail-archive.com/freebsd-security@freebsd.org/msg05911.html
 
I built the ntp tools directly and had the same assert core dump. So I've rolled back the update for the time being.
 
I guess, it is time to acknowledge the fact, that:
http://support.ntp.org/bin/view/Main/WebHome#NtpProject said:
The NTP Project produces a reference implementation of the NTP protocol and implementation documentation through a largely volunteer effort. ...

And even the usefulness as a reference implementation of the original NTPd is quite limited, since the code base is incomprehensibly horrible, perhaps written by a LSD junkie in the 70's.

This is neither the quality of code nor the completeness of the provided functionality that I would expect for production grade software. For example, you cannot limit the original ntpd to listen only on a single interface. I thought, well it must be easy to patch that function into the code, guess what, I spent 1 hour of searching in the ntpd code where it sets up the listen sockets, I found some places, however I got not a single clue how to exclude the interfaces that I wanted ntpd not to listen on -- I got tired of the ridiculous coding style, I gave up, and I switched to net/OpenNTPD.

I vote for FreeBSD abandons as soon as possible the NTP reference implementation of The NTP Project from the base system, and switches to the production grade implementation of The OpenNTPD Project.
 
Back
Top