From 83bf2232103dc032baf07cdba2940c7cfb6b7624 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Thu, 5 May 2011 04:47:45 +0000 Subject: [PATCH] explictly kill the process if the server fails to start, check for a non zero length pid file --- bin/tests/system/start.pl | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/bin/tests/system/start.pl b/bin/tests/system/start.pl index d9a8c9080f..724547713a 100644 --- a/bin/tests/system/start.pl +++ b/bin/tests/system/start.pl @@ -15,7 +15,7 @@ # OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. -# $Id: start.pl,v 1.20 2011/04/27 17:46:47 each Exp $ +# $Id: start.pl,v 1.21 2011/05/05 04:47:45 marka Exp $ # Framework for starting test servers. # Based on the type of server specified, check for port availability, remove @@ -196,13 +196,21 @@ sub start_server { unlink glob $cleanup_files; } - system "$command"; + # get the shell to report the pid of the server ($!) + $command .= "echo \$!"; + # start the server + my $child = `$command`; + + # wait up to 14 seconds for the server to start and to write the + # pid file otherwise kill this server and any others that have + # already been started my $tries = 0; - while (!-f $pid_file) { + while (!-s $pid_file) { if (++$tries > 14) { - print "I:Couldn't start server $server\n"; + print "I:Couldn't start server $server (pid=$child)\n"; print "R:FAIL\n"; + system "kill -9 $child" if ("$child" ne ""); system "$PERL $topdir/stop.pl $testdir"; exit 1; }