From owner-freebsd-stable Tue Jul 30 6:55:27 2002 Delivered-To: freebsd-stable@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 39CC537B400 for ; Tue, 30 Jul 2002 06:55:22 -0700 (PDT) Received: from drugs.dv.isc.org (drugs.dv.isc.org [130.155.191.236]) by mx1.FreeBSD.org (Postfix) with ESMTP id DD94343E42 for ; Tue, 30 Jul 2002 06:55:20 -0700 (PDT) (envelope-from marka@drugs.dv.isc.org) Received: from drugs.dv.isc.org (localhost [127.0.0.1]) by drugs.dv.isc.org (8.12.5/8.12.5) with ESMTP id g6UDt8Je094799; Tue, 30 Jul 2002 23:55:09 +1000 (EST) (envelope-from marka@drugs.dv.isc.org) Message-Id: <200207301355.g6UDt8Je094799@drugs.dv.isc.org> To: greg.panula@dolaninformation.com Cc: stable@FreeBSD.ORG From: Mark.Andrews@isc.org Subject: Re: bind crash In-reply-to: Your message of "Tue, 30 Jul 2002 08:18:45 EST." <3D469235.D58E4A4@dolaninformation.com> Date: Tue, 30 Jul 2002 23:55:08 +1000 Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG > Howdy, > > My bind daemon crashed yesterday and I was curious if anyone had any > suggestions to reason why. The box is running freebsd 4.6-stable, code > from 07/11/2002. > > Here are the syslog messages that were generated: > Jul 29 14:19:42 named[64031]: > /usr2/src-tree/freebsd-stable/July-11th-2002/prefix/src/usr.sbin/named/../../ > contrib/bind/bin/named/ns_main.c:559: > INSIST(errno == EINTR): Invalid argument failed. > Jul 29 14:19:42 /kernel: Jul 29 14:19:42 named[64031]: > /usr2/src-tree/freebsd-stable/July-11th-2002/prefix/src/usr.sbin/named/../../ > contrib/bind/bin/named/ns_main.c:559: > INSIST(errno == EINTR): Invalid argument failed. > Jul 29 14:19:42 /kernel: pid 64031 (named), uid 53: exited on signal 6 > Jul 29 14:19:42 /kernel: Jul 29 14:19:42 /kernel: pid 64031 (named), uid > 53: exited on signal 6 > > > Here is the snippit of code from ns_main.c referenced in the syslog > message: > > ns_notice(ns_log_default, "Ready to answer queries."); > gettime(&tt); > prime_cache(); > while (!needs_exit) { > evEvent event; > > ns_debug(ns_log_default, 15, "main loop"); > if (needs != 0) > handle_needs(); > else if (evGetNext(ev, &event, EV_WAIT) != -1) > INSIST_ERR(evDispatch(ev, event) != -1); > else > line 559 ----> INSIST_ERR(errno == EINTR); > } > > I cvsup'd down the latest version of ns_main.c and there weren't > difference between today's version and 07/11/2002's version. > > Previously the bind daemon had been up for about 7-8 days until this > crash. This is the first time bind has crashed on this machine(it has > been doing dns duties for close to two years now, without a crash). > > Thanks, > Greg > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-stable" in the body of the message This is symptomatic of gettimeofday() returning a out of range tv_usec value. There should be a wrapper around the calls to gettimeofday() to correct tv_usec however when I run nm on the objects in the build tree they are calling gettimeofday directly. From src/freebsd/include/port_after.h as distributed by ISC. int isc__gettimeofday(struct timeval *tp, struct timezone *tzp); #define gettimeofday isc__gettimeofday Mark -- Mark Andrews, Internet Software Consortium 1 Seymour St., Dundas Valley, NSW 2117, Australia PHONE: +61 2 9871 4742 INTERNET: Mark.Andrews@isc.org To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message