[OpenAFS-devel] Why do afsd daemons loop tightly after receiving a SIGHUP?

Daniel Jacobowitz dmj+afs@andrew.cmu.edu
Thu, 2 Aug 2001 19:38:53 -0700


On Thu, Aug 02, 2001 at 10:36:04PM -0400, Derek Atkins wrote:
> Daniel Jacobowitz <dmj+afs@andrew.cmu.edu> writes:
> 
> > Have you actually tried ignoring the signal?  The multiple signal
> > delivery paths in Linux are somewhat convoluted, but the primary one
> > for receiving signals sent by another user process (send_sig_info)
> > checks ignored_signal().  The signal should actually not be delivered
> > in that case.
> 
> This appears to be a specific change in Linux 2.4.  This behavior was
> certainly not the case in 2.2.  But yes, it does appear that setting
> signal(SIG_IGN) on the appropriate signals should DTRT for Linux 2.4.

Well, except for those we can't ignore, of course.  Except that if we
ignore the signals inside of the syscall, when we're already in kernel
mode, we can probably get it to ignore them anyway.  It'd be worth it
to clear the pending signal anyway; it's not very complicated.

-- 
Daniel Jacobowitz                           Carnegie Mellon University
MontaVista Software                         Debian GNU/Linux Developer