Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 2 Nov 2004 00:14:48 -0500 (EST)
From:      Daniel Eischen <deischen@freebsd.org>
To:        Kris Kennaway <kris@obsecurity.org>
Cc:        threads@freebsd.org
Subject:   Re: [kris@obsecurity.org: named and KSE]
Message-ID:  <Pine.GSO.4.43.0411020012470.1683-100000@sea.ntplx.net>
In-Reply-To: <20041102031124.GA69552@xor.obsecurity.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 1 Nov 2004, Kris Kennaway wrote:

> Ping

There's not a lot to go on by that comment.  David Xu has been
working on a patch to fix a race condition that may prevent
loss of wakeup in pthread_cond_{timed}wait() so that may fix
the problem.

-- 
Dan Eischen

>
> ----- Forwarded message from Kris Kennaway <kris@obsecurity.org> -----
>
> Date: Sun, 24 Oct 2004 19:40:34 -0700
> From: Kris Kennaway <kris@obsecurity.org>
> To: current@freeBSD.org
> Subject: named and KSE
> User-Agent: Mutt/1.4.2.1i
>
> This SMP 5.3-STABLE system updated yesterday acts as a resolver for a
> bunch of package clients.  I just got this message in the logs:
>
> Oct 25 01:45:00 <daemon.warn> pointyhat named[281]: *** POKED TIMER ***
>
> This comes from contrib/bind9/lib/isc/timer.c:
>
>         /*
>          * This is a temporary (probably) hack to fix a bug on tru64 5.1
>          * and 5.1a.  Sometimes, pthread_cond_timedwait() doesn't actually
>          * return when the time expires, so here, we check to see if
>          * we're 15 seconds or more behind, and if we are, we signal
>          * the dispatcher.  This isn't such a bad idea as a general purpose
>          * watchdog, so perhaps we should just leave it in here.
>          */
>         if (signal_ok && timedwait) {
>                 isc_interval_t fifteen;
>                 isc_time_t then;
>
>                 isc_interval_set(&fifteen, 15, 0);
>                 isc_time_add(&manager->due, &fifteen, &then);
>
>                 if (isc_time_compare(&then, now) < 0) {
>                         SIGNAL(&manager->wakeup);
>                         signal_ok = ISC_FALSE;
>                         isc_log_write(isc_lctx, ISC_LOGCATEGORY_GENERAL,
>                                       ISC_LOGMODULE_TIMER, ISC_LOG_WARNING,
>                                       "*** POKED TIMER ***");
>                 }
>         }
>
> and suggests it could be a threading bug.
>
> Kris
>
>
>
> ----- End forwarded message -----
>

-- 
Dan Eischen



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.43.0411020012470.1683-100000>