diff options
author | Sergio Ahumada <sergio.ahumada@nokia.com> | 2011-03-18 17:28:15 +0100 |
---|---|---|
committer | Sergio Ahumada <sergio.ahumada@nokia.com> | 2011-03-18 17:28:15 +0100 |
commit | dd0385c7e9579570c7789bcfb0983fe789a36a53 (patch) | |
tree | 11d30abb9530860f2a6bd3e2c6f545dd79a1d62c | |
parent | e913546f11a33555b7148e4280145fc48609e7b7 (diff) |
BM2: Improve robustness of bm2_result_watcher.pl
Task-number: QTQAINFRA-40
-rwxr-xr-x | scripts/bm2_result_watcher.pl | 31 |
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"); } } } |