On Wed, Jul 22, 2009 at 03:33:16PM +0200, Hannes Eder wrote: > This patch solves two problems: > > - When external checks timeout frequently ldirectord runs out of > file handles, because when alarm()-ing out of Perls system() an > internal pipe is not reclaimed. This is at least true for Perl > 5.8.8 on Linux, but likely to affect other versions of Perl and > systems as well. The pipe is used to send errno(3) from the > child to the parent, in case internal exec(3) fails. > > - Do not leave child behind on timeout, TERMinate it. > > How are they solved? > > - Emulate Perls system() via Perls fork(), exec(), and waitpid() and > by TERMinating the child on timeout. > > Signed-off-by: Hannes Eder <[email protected]>
Hi Hannes, Thanks, and sorry for the delay in getting back to yuo. The change looks good to me - though its kind of disturbing that Perl needs such workarounds. I've applied the change to the dev tree on hg.linux-ha.org _______________________________________________________ Linux-HA-Dev: [email protected] http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev Home Page: http://linux-ha.org/
