timeout: handle signals more transparently
commit64be8b40f457f6480f9e79777d98afce40469786
authorPádraig Brady <P@draigBrady.com>
Wed, 12 Sep 2012 02:21:11 +0000 (12 03:21 +0100)
committerPádraig Brady <P@draigBrady.com>
Mon, 24 Sep 2012 14:46:51 +0000 (24 15:46 +0100)
tree8607a2920d228479d39f795405a3ddbbfddcefb3
parent7331ab55fc28ac03c18cd683b7748a07dbd63f0f
timeout: handle signals more transparently

This was originally attempted in commit v8.12-117-g5a647a0,
but reverted before release because of the unreliability
of disabling core dumps using setrlimit() on Linux kernels.
This new version instead uses prctl() where available to
more reliably disable core dumps for the timeout process.

* m4/jm-macros.m4: Define HAVE_SETRLIMIT and HAVE_PRCTL.
* src/timeout.c (disable_core_dumps): A new function
that disables coredumps using prctl or setrlimit if available.
(main): If the child exited with a signal and we can
disable core dumps, then raise that signal to the timeout
process itself, so that callers may also see the signal status.
Also print a message indicating when the monitored command
dumped core, as that information is lost in the signal
propagation through timeout.
m4/jm-macros.m4
src/timeout.c