[Linux-ha-dev] [PATCH] ldirectord: Ignore exit status of left-over external check processes

Julius Volz juliusv at google.com
Fri Aug 8 08:29:59 MDT 2008


Hi,

When using external check processes in ldirectord, we encountered some
cases of zombies being left behind when the external process ran into
a timeout. This happened because nobody wait()ed on their exit status.

The following patch fixes this issue for us by just ignoring
SIGCHLD signals in the code branch that executes the checks.

Julius

diff -r e0f9eeef2e31 ldirectord/ldirectord.in
--- a/ldirectord/ldirectord.in	Thu Aug 07 17:15:05 2008 +1000
+++ b/ldirectord/ldirectord.in	Fri Aug 08 15:32:16 2008 +0200
@@ -2250,6 +2250,7 @@ sub ld_main
                         check_signal();
                         
                 } else {
+			local $SIG{CHLD} = 'IGNORE';
                         my @real_checked;
                         foreach my $v (@VIRTUAL) {
                                 my $real = $$v{real};



More information about the Linux-HA-Dev mailing list