You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Eric Covener <co...@gmail.com> on 2009/03/24 19:12:25 UTC

SIGQUIT using default signal handler instead of sig_coredump

SIGQUIT (3) does not go through sig_coredump(). Is this intentional to
short-circuit the sig_coredump handling in the case something is
broken there?

I'd like to document for CoreDumpDirectory, so people from Java world
aren't left scratching their heads.

-- 
Eric Covener
covener@gmail.com

Re: SIGQUIT using default signal handler instead of sig_coredump

Posted by Eric Covener <co...@gmail.com>.
On Tue, Mar 24, 2009 at 6:47 PM, Jeff Trawick <tr...@gmail.com> wrote:
> $ kill -QUIT 9297
> $ ls /cores/
> core.9297
> (/cores/ is the default location here.)

Same on recent linux and older solaris, but does not core or exit on AIX.

Even though it'd be safe to re-signal, it probably wouldn't be
appropriat to run the fatal exception hook.  For now, I'm just going
to doc the difference for that signal.

-- 
Eric Covener
covener@gmail.com

Re: SIGQUIT using default signal handler instead of sig_coredump

Posted by Jeff Trawick <tr...@gmail.com>.
On Tue, Mar 24, 2009 at 11:20 PM, Ruediger Pluem <rp...@apache.org> wrote:

> On 24.03.2009 19:12, Eric Covener wrote:
> > SIGQUIT (3) does not go through sig_coredump(). Is this intentional to
> > short-circuit the sig_coredump handling in the case something is
> > broken there?
>

I dunno about the intentions.


>
>
> IMHO SIGQUIT isn't supposed to cause a coredump. Only "fatal" signals are
> supposed to do this. If you need a coredump of your running process just
> use
> gcore or gdb.


See http://en.wikipedia.org/wiki/SIGQUIT

I think the issue is that SIGQUIT does terminate the process with a core
dump (at least on some systems).  Given that, the question is whether we
should respect any CoredumpDirectory setting on the way out.  Respecting
CoredumpDirectory seems reasonable.

OS X:

$ lsap
 9292     1 ./httpd
 9293  9292 ./httpd
 9294  9292 ./httpd
 9295  9292 ./httpd
 9296  9292 ./httpd
 9297  9292 ./httpd
$ kill -QUIT 9297
$ ls /cores/
core.9297

(/cores/ is the default location here.)

Re: SIGQUIT using default signal handler instead of sig_coredump

Posted by Ruediger Pluem <rp...@apache.org>.
On 24.03.2009 19:12, Eric Covener wrote:
> SIGQUIT (3) does not go through sig_coredump(). Is this intentional to
> short-circuit the sig_coredump handling in the case something is
> broken there?

IMHO SIGQUIT isn't supposed to cause a coredump. Only "fatal" signals are
supposed to do this. If you need a coredump of your running process just use
gcore or gdb.

Regards

RĂ¼diger