If a build step fail, immediately fail all queued builds that depend on it
[?]
May 3, 2013, 4:30 PM
MNZ67UXOZ427J4FLNA5STC6EB567WU65PJE7B5IOLM4UICU3RFNQCDependencies
- [2]
XYBSTHMJfix for buildsteps starting at 0, probably something changed in catalyst - [3]
PMNWRTGJAdd multiple output support - [4]
FYO6NECEhydra - [5]
G5A7TZVI* Don't discard old build steps when restarting a build. - [6]
MPGVCHVF* Fix an apparent incompatibility with recent DBIx::Class. - [7]
FLPZ3YCKRemove debug line - [8]
CLJQCY2X* Store info about all the build actions and allow them to be - [9]
A63IHCMX* Register GC roots properly. - [10]
2IEFMER5* Add --fallback to prevent problems with obsolete substitutes. - [11]
BOFOHCPKremoved debug print, added last 50 lines in failure emails - [*]
7YBYT2LQ - [*]
OG7BEM57 - [*]
L2E6EVE2* Merged the Build and Job tables. - [*]
AS5PAYLI
Change contents
- edit in src/script/hydra-build at line 215
}sub nextFreeStepNr {my ($build) = @_;my $max = $build->buildsteps->find({}, {select => {max => 'stepnr + 1'}, as => ['max']});return (defined $max && defined $max->get_column('max')) ? $max->get_column('max') : 1; - edit in src/script/hydra-build at line 224
sub failDependents {my ($drvPath, $errorMsg) = @_;# Get the referrer closure of $drvPath.my @dependentDrvs = computeFSClosure(1, 0, $drvPath);my $time = time();txn_do($db, sub { - edit in src/script/hydra-build at line 236
my @dependentBuilds = $db->resultset('Builds')->search({ drvpath => [ @dependentDrvs ], finished => 0, busy => 0 }); - edit in src/script/hydra-build at line 239
for my $d (@dependentBuilds) {print STDERR "failing dependent build ", $d->id, " of ", $d->project->name, ":", $d->jobset->name, ":", $d->job->name, "\n";$d->update({ finished => 1, logfile => '', timestamp => time # !!! Why change the timestamp?, iscachedbuild => 0, buildstatus => $drvPath eq $d->drvpath ? 1 : 2, starttime => $time, stoptime => $time, errormsg => undef});my $step = $d->buildsteps->create({ stepnr => nextFreeStepNr($d), type => 0 # = build, drvpath => $drvPath, busy => 0, status => 1, starttime => time, stoptime => time, errormsg => $errorMsg});addBuildStepOutputs($step);}});} - edit in src/script/hydra-build at line 305[3.16261]→[4.405:406](∅→∅),[4.1163]→[4.405:406](∅→∅),[4.406]→[4.4:115](∅→∅),[4.4924]→[4.4:115](∅→∅),[4.1]→[4.4:115](∅→∅),[4.115]→[2.0:107](∅→∅)
my $max = $build->buildsteps->find({}, {select => {max => 'stepnr + 1'}, as => ['max']});my $buildStepNr = (defined $max && defined $max->get_column('max')) ? $max->get_column('max') : 1; - edit in src/script/hydra-build at line 306
my $buildStepNr = nextFreeStepNr($build); - edit in src/script/hydra-build at line 379[16.649][16.649]
# Immediately fail all builds that depend on this derivation.failDependents($drvPathStep, $errorMsg);