summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergio Ahumada <sergio.ahumada@nokia.com>2011-03-18 17:28:15 +0100
committerSergio Ahumada <sergio.ahumada@nokia.com>2011-03-18 17:28:15 +0100
commitdd0385c7e9579570c7789bcfb0983fe789a36a53 (patch)
tree11d30abb9530860f2a6bd3e2c6f545dd79a1d62c
parente913546f11a33555b7148e4280145fc48609e7b7 (diff)
BM2: Improve robustness of bm2_result_watcher.pl
Task-number: QTQAINFRA-40
-rwxr-xr-xscripts/bm2_result_watcher.pl31
1 files changed, 18 insertions, 13 deletions
diff --git a/scripts/bm2_result_watcher.pl b/scripts/bm2_result_watcher.pl
index 61ba8ee..cbe5f33 100755
--- a/scripts/bm2_result_watcher.pl
+++ b/scripts/bm2_result_watcher.pl
@@ -34,17 +34,24 @@ my $logFile = $logFilePath . $daemonName . ".log";
my $pidFilePath = "/var/run/"; # PID file path
my $pidFile = $pidFilePath . $daemonName . ".pid";
my $workdir = "/home/qt/benchmarks2/";
+my $tmpdir = "/home/qt/tmp_benchmarks2/";
# daemonize
use POSIX qw(setsid);
chdir '/';
umask 0;
open STDIN, '/dev/null' or die logEntry("Can't read /dev/null: $!");
-open STDOUT, '>>/dev/null' or die logEntry("Can't write to /dev/null: $!");
-open STDERR, '>>/dev/null' or die logEntry("Can't write to /dev/null: $!");
+open STDOUT, '>>' . $tmpdir . 'stdout.log' or die logEntry("Can't write to /dev/null: $!");
+open STDERR, '>>' . $tmpdir . 'stderr.log' or die logEntry("Can't write to /dev/null: $!");
defined( my $pid = fork ) or die "Can't fork: $!";
exit if $pid;
-
+
+# turn on logging
+if ($logging) {
+ open LOG, ">>$logFile";
+ select((select(LOG), $|=1)[0]); # make the log file "hot" - turn off buffering
+}
+
# dissociate this process from the controlling terminal that started it and stop being part
# of whatever process group this process was a part of.
POSIX::setsid() or die logEntry("Can't start a new session.");
@@ -58,12 +65,6 @@ my $pidfile = File::Pid->new( { file => $pidFile, } );
$pidfile->write or die logEntry("Can't write PID file, /dev/null: $!");
-# turn on logging
-if ($logging) {
- open LOG, ">>$logFile";
- select((select(LOG), $|=1)[0]); # make the log file "hot" - turn off buffering
-}
-
# "infinite" loop where some useful process happens
until ($dieNow) {
sleep($sleepMainLoop);
@@ -87,11 +88,15 @@ until ($dieNow) {
}
close(FILE);
my $upload_exe = "/home/qt/bm2/scripts/uploadresults.py --db bm --host $hostname --platform $platform --branch $branch --sha1 $sha1 --file $workdir$f";
- if (system($upload_exe) == 0) {
- system("/bin/cp $workdir$f /home/qt/tmp_benchmarks2") == 0 or logEntry("Couldn't execute `cp': " . $workdir . $f);
- system("/bin/rm -f $workdir$f") == 0 or logEntry("Couldn't execute `rm': " . $workdir . $f);
+ logEntry("Trying to parse: uploadresults.py --db bm --host $hostname --platform $platform --branch $branch --sha1 $sha1 --file $workdir$f");
+ eval { system($upload_exe) };
+ if ($@) {
+ logEntry("Couldn't execute: uploadresults.py --db bm --host $hostname --platform $platform --branch $branch --sha1 $sha1 --file $workdir$f");
+ logEntry("Couldn't execute: $@");
} else {
- logEntry("Couldn't execute: uploadresults.py");
+ system("/bin/cp $workdir$f $tmpdir") == 0 or logEntry("Couldn't execute `cp': " . $workdir . $f);
+ system("/bin/rm -f $workdir$f") == 0 or logEntry("Couldn't execute `rm': " . $workdir . $f);
+ logEntry("Done with result file: uploadresults.py --db bm --host $hostname --platform $platform --branch $branch --sha1 $sha1 --file $workdir$f");
}
}
}