Subject: Re: very strange error message from ntpd upon running cvs (?)
To: Frank Kardel <kardel@netbsd.org>
From: Andrew Doran <ad@netbsd.org>
List: current-users
Date: 02/17/2007 19:54:33
Hi,

On Sat, Feb 17, 2007 at 08:47:33PM +0100, Frank Kardel wrote:

> >>Feb 13 22:33:22 dexamyl ntpd[1243]: sigio_handler: 
> >>sigio_handler_active != 0
[...]
> When ntpd logs this message, then ntpd's assumption that the SIGIO 
> handler is not called
> again while SIGIO is being handled is violated. This situation will 
> definitely cause
> confusion within ntpd io engine. If this occurs it is definitely a 
> violation of signal semantics.
> 
> To quote sigaction(2):
>     Signal routines execute with the signal that caused their invocation
>     blocked, but other signals may yet occur.
> 
> Thus recursive signal handler invocations must not occur while a signal 
> is handled
> (unless something fiddles with the signal mask which ntpd doesn't in 
> that code path).
> 
> It needs to be checked whether -current signal semantics are still 
> matching the documentation.

-current should still behave like this. Presumably there is a bug somewhere,
either in the MI sendsig(), or in the MD signal delivery routines. I'll be
looking into this one shortly.

Cheers,
Andrew