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