Make restartBuilds faster

[?]
Jul 17, 2014, 10:02 PM
J5ITV54PZKTD3RKFB6XETFNSAJS6NRMGXNRTUYU6ASHE3EBJKENAC

Dependencies

  • [2] MBRAFK6F Register restarted derivations as GC roots
  • [3] VHV6GI4L Add a jobset eval action to restart all aborted/cancelled builds
  • [4] UOINKJ2J Add an action to cancel all builds in a jobset eval
  • [*] 2GK5DOU7 * Downloading closures.

Change contents

  • replacement in src/lib/Hydra/Helper/Nix.pm at line 575
    [3.788][3.788:803]()
    my $n = 0;
    [3.788]
    [3.803]
    my @buildIds;
  • edit in src/lib/Hydra/Helper/Nix.pm at line 581
    [3.900]
    [3.900]
  • replacement in src/lib/Hydra/Helper/Nix.pm at line 585
    [3.1036][3.1036:1101](),[3.1101][2.0:1]()
    push @paths, $_->drvpath foreach $build->buildsteps;
    [3.1036]
    [2.1]
    push @buildIds, $build->id;
  • edit in src/lib/Hydra/Helper/Nix.pm at line 587
    [2.43]
    [3.1101]
    }
  • replacement in src/lib/Hydra/Helper/Nix.pm at line 589
    [3.1102][3.1102:1296]()
    $build->update(
    { finished => 0
    , busy => 0
    , locker => ""
    , iscachedbuild => 0
    });
    $n++;
    [3.1102]
    [3.1296]
    $db->resultset('Builds')->search({ id => \@buildIds })->update(
    { finished => 0
    , busy => 0
    , locker => ""
    , iscachedbuild => 0
    });
  • replacement in src/lib/Hydra/Helper/Nix.pm at line 596
    [3.1297][3.1297:1492]()
    # Reset the stats for the evals to which this build belongs.
    # !!! Should do this in a trigger.
    $build->jobsetevals->update({nrsucceeded => undef});
    }
    [3.1297]
    [3.1492]
    # Reset the stats for the evals to which the builds belongs.
    # !!! Should do this in a trigger.
    $db->resultset('JobsetEvals')->search({ build => \@buildIds }, { join => 'buildIds' })->update({ nrsucceeded => undef });
  • replacement in src/lib/Hydra/Helper/Nix.pm at line 605
    [3.1640][3.1640:1655]()
    return $n;
    [3.1640]
    [3.1616]
    return scalar(@buildIds);