bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Added the core dumps signals to the list of caught signals.


From: Pádraig Brady
Subject: Re: [PATCH] Added the core dumps signals to the list of caught signals.
Date: Wed, 21 May 2014 20:22:51 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130110 Thunderbird/17.0.2

On 05/21/2014 06:28 PM, Kieran Colford wrote:
> It is not mentioned anywhere why the signals which generate core dumps
> are ignored by this module even though they are equally fatal to the
> process.
> 
> The only speculated reason for this is that the cleanup routine my
> alter the state of the running process, making the core dump difficult
> to use in debugging.
> 
> On the other hand, in a program that sets up temporary files, a fatal
> signal from an assert statement or a rogue call to abort (say from the
> xalloc-die module) will kill the process and pollute the user's /tmp
> directory.  This also covers things such as segmentation faults and
> division by 0 errors.
> ---
>  lib/fatal-signal.c |   13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/lib/fatal-signal.c b/lib/fatal-signal.c
> index 9a6f5f1..7138e3f 100644
> --- a/lib/fatal-signal.c
> +++ b/lib/fatal-signal.c
> @@ -75,6 +75,19 @@ static int fatal_signals[] =
>  #ifdef SIGBREAK
>      SIGBREAK,
>  #endif
> +    /* Core dump signals. */
> +#ifdef SIGABRT
> +    SIGABRT,
> +#endif
> +#ifdef SIGFPE
> +    SIGFPE,
> +#endif
> +#ifdef SIGSEGV
> +    SIGSEGV,
> +#endif
> +#ifdef SIGSYS
> +    SIGSYS,
> +#endif
>      0
>    };
>  
> 

I think the idea here is that the current set of listed signals
are _externally_ generated. I.E. the program is in a consistent
state when it gets the signal and therefore can legitimately
gracefully terminate.

However the signals you add above would be generated due
to an _internal_ inconsistency, and the safest thing
in that case would be to stop and dump core rather than
trying to run more logic and potentially do something undefined.

I see SIGQUIT is not one of the listed signals.
That one might be added to the list?

cheers,
Pádraig.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]