Author: goneri Date: 2008-04-26 23:10:09 +0000 (Sat, 26 Apr 2008) New Revision: 819
Modified: svnbuildstat/trunk/script/svnbuildstat_agent.pl Log: try to unmount pbuilder directory if needed, send back the .dsc and .changes too Modified: svnbuildstat/trunk/script/svnbuildstat_agent.pl =================================================================== --- svnbuildstat/trunk/script/svnbuildstat_agent.pl 2008-04-26 21:56:02 UTC (rev 818) +++ svnbuildstat/trunk/script/svnbuildstat_agent.pl 2008-04-26 23:10:09 UTC (rev 819) @@ -38,8 +38,13 @@ my $admin = "Gonéri Le Bouder <[EMAIL PROTECTED]>"; my $pbuildertgz = "$pbuilderplace/$distro.tar.gz"; my $server = "http://88.191.78.230:3000"; -my $keeptmpdir = 1; +my $keeptmpdir = 0; +my $sigTermCatched = 0; +my $exit = 0; +sub sigterm {print "SIGTERM!\n";$sigTermCatched=1}; +$SIG{INT}= 'sigterm'; + die unless $maxjobs =~ /^\d+$/; $ENV{LC_ALL} = 'C'; @@ -91,9 +96,15 @@ } } - # TODO: looks for mounted filesystem here and try - # to umount them - + foreach (`mount`) { + if (/^\/\S+\son\s(\S+)/) { + my $mountPoint = $1; + if ($mountPoint =~ /^$pbuilderplace/) { + print "umounting $mountPoint\n"; + system("umount $mountPoint"); + } + } + } # !!! Maybe danger if $pbuilderplace is unset # so I do another check here! die "DANGER: pbuilderplace not correct!" unless $pbuilderplace =~ /\/./; @@ -125,12 +136,21 @@ if (isMemFull()||isDiskFull($workplace)||isDiskFull($buildarea)||isDiskFull('/tmp')) { print "checkSanity(): disk or memory full!!!\n"; + purge(); + } + + $exit = 1 if $sigTermCatched; + if ($exit||isMemFull()||isDiskFull($workplace)||isDiskFull($buildarea)||isDiskFull('/tmp')) { if (%job&&(isDiskFull($workplace)||isDiskFull($buildarea))) { print "Emergency clean up\n"; killfam (15, keys %job); - - sleep (60*3); + foreach (1..10) { + sleep (1); + print "."; + } + print "\n"; + killfam (9, keys %job); foreach (keys %job) { @@ -292,8 +312,8 @@ $report->{build} = "ok"; $report->{files} = ''; foreach (bsd_glob($threadbuildarea.'/*')) { - next unless /deb$/; # deb & udeb - $report->{packages} = $report->{packages}.basename($_).' '; + next if /orig\.tar\.gz$/; # deb & udeb + $report->{files} = $report->{files}.basename($_).' '; postFile($_); } } else { @@ -368,6 +388,7 @@ while (sleep 1) { checkSanity(); + exit(1) if $exit; upgradeChroot(); # Check the running jobs (See #453710) _______________________________________________ Collab-qa-commits mailing list [email protected] http://lists.alioth.debian.org/mailman/listinfo/collab-qa-commits
