From ebedeffa25eb390e2aeb7ba81a2f5b07f236ea07 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20K=C4=99pie=C5=84?= Date: Tue, 19 Mar 2019 10:26:36 +0100 Subject: [PATCH] Correctly invoke stop.pl when start.pl fails MR !1141 broke the way stop.pl is invoked when start.pl fails: - start.pl changes the working directory to $testdir/$server before attempting to start $server, - commit 27ee629e6b583f60fea0ab78fb3ebd0d1d71d9d2 causes the $testdir variable in stop.pl to be determined using the $SYSTEMTESTTOP environment variable, which is set to ".." by all tests.sh scripts, - commit e227815af51c0656e22e5aebfe99e2399106b31c makes start.pl pass $test (the test's name) rather than $testdir (the path to the test's directory) to stop.pl when a given server fails to start. Thus, when a server is restarted from within a tests.sh script and such a restart fails, stop.pl attempts to look for the server directory in a nonexistent location ($testdir/$server/../$test, i.e. $testdir/$test, instead of $testdir/../$test). Fix the issue by changing the working directory before stop.pl is invoked in the scenario described above. (cherry picked from commit 4afad2a047a9883e52fd3b7af2947b7917ece2a1) --- bin/tests/system/start.pl | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/tests/system/start.pl b/bin/tests/system/start.pl index 3ac94af92c..d0365ca08a 100755 --- a/bin/tests/system/start.pl +++ b/bin/tests/system/start.pl @@ -213,6 +213,7 @@ sub start_server { print "I:$test:Couldn't start server $command (pid=$child)\n"; print "I:$test:failed\n"; system "kill -9 $child" if ("$child" ne ""); + chdir "$testdir"; system "$PERL $topdir/stop.pl $test"; exit 1; }