Handle active build steps of aborted builds properly

This commit is contained in:
Eelco Dolstra 2013-01-22 23:01:29 +01:00
parent 30e5185acf
commit ecdbce1a61
3 changed files with 6 additions and 10 deletions

View file

@ -41,13 +41,11 @@
<td>[% step.machine.split('@').1 %]</td> <td>[% step.machine.split('@').1 %]</td>
<td> <td>
[% IF step.busy == 1 %] [% IF step.busy == 1 %]
[% IF build.finished %] <strong>Building</strong>
<span class="error">Aborted</span>
[% ELSE %]
<strong>Building</strong>
[% END %]
[% ELSIF step.status == 0 %] [% ELSIF step.status == 0 %]
Succeeded Succeeded
[% ELSIF step.status == 4 %]
<span class="error">Aborted</span>
[% ELSE %] [% ELSE %]
<span class="error">Failed: [% HTML.escape(step.errormsg) %]</span> <span class="error">Failed: [% HTML.escape(step.errormsg) %]</span>
[% END %] [% END %]
@ -163,7 +161,7 @@
[% END %] [% END %]
[% IF !build.finished %] [% IF build.busy %]
<h3>Running build steps</h3> <h3>Running build steps</h3>
[% INCLUDE renderBuildSteps type="Running" %] [% INCLUDE renderBuildSteps type="Running" %]
[% END %] [% END %]

View file

@ -286,10 +286,7 @@ sub doBuild {
my $drvPathStep = $1; my $drvPathStep = $1;
txn_do($db, sub { txn_do($db, sub {
my $step = $build->buildsteps->find({stepnr => $buildSteps{$drvPathStep}}) or die; my $step = $build->buildsteps->find({stepnr => $buildSteps{$drvPathStep}}) or die;
my $stepOutpath = $step->outpath; $step->update({busy => 0, status => 0, stoptime => time});
my $stepStatus = 0;
$step->update({busy => 0, status => $stepStatus, stoptime => time});
}); });
} }

View file

@ -41,6 +41,7 @@ sub unlockDeadBuilds {
if ($unlock) { if ($unlock) {
print "build ", $build->id, " pid $pid died, unlocking\n"; print "build ", $build->id, " pid $pid died, unlocking\n";
$build->update({ busy => 0, locker => ""}); $build->update({ busy => 0, locker => ""});
$build->buildsteps->search({ busy => 1 })->update({ busy => 0, status => 4, stoptime => time });
} }
} }
}); });