[sbachman@saveware.com] libc/1534: When a program execl()'s in a signal function, the new program no longer responds to any

Scott Bachmann sbachman@saveware.com
Fri Jan 14 14:17:00 GMT 2000


Sorry for my bad programing in the test program, but it was something I
had thrown together pretty quickly.  I was able to get the program to work
properly using both SA_NODEFER and using sigprocmask().  I am unsure of
why this bug in our servers came about after the change to glibc, and
after discussing it with some other programmers, they thought it might
have been a problem with glibc itself.  

Thank you for your time, and Sorry to have bothered you with this minor
problem.

Scott Bachmann

> > We've received the appended bug report.  For me this looks like a bug
> > in the kernel.  AFAIK Posix explicitly mentions execl as a function
> > which is allowed to be called from a signal handler (printf is not
> > signal safe but I don't think that this is the problem here).
> > 
> > What do you think?  Should this be forwarded to linux-kernel?
> 
> I don't think this is a bug.  In the signal handler, signals are
> blocked until the handler is exited.  Signal masks are inherited by
> child processes.  You probably want to set SA_NODEFER.


More information about the Libc-alpha mailing list