* Monitor for dead builds all the time.

[?]
Nov 28, 2008, 11:00 AM
WM5WAST3S67EWKA52NVQ2V55XO6E4WRPAOUGSQGA7XDX46ARX4OQC

Dependencies

Change contents

  • replacement in src/Hydra/programs/Runner.pl at line 14
    [3.7968][3.7968:8033](),[3.8033][2.11358:11472](),[2.11472][3.8095:8125](),[3.8095][3.8095:8125](),[2.11499][2.11499:11547](),[2.11547][3.8157:8293](),[3.8157][3.8157:8293](),[3.8293][2.11548:11679]()
    # Unlock jobs whose building process has died.
    $db->txn_do(sub {
    my @jobs = $db->resultset('Builds')->search(
    {finished => 0, busy => 1}, {join => 'schedulingInfo'});
    foreach my $job (@jobs) {
    my $pid = $job->schedulingInfo->locker;
    if (kill(0, $pid) != 1) { # see if we can signal the process
    print "job ", $job->id, " pid $pid died, unlocking\n";
    $job->schedulingInfo->busy(0);
    $job->schedulingInfo->locker("");
    $job->schedulingInfo->update;
    [3.7968]
    [3.8376]
    sub unlockDeadJobs {
    # Unlock jobs whose building process has died.
    $db->txn_do(sub {
    my @jobs = $db->resultset('Builds')->search(
    {finished => 0, busy => 1}, {join => 'schedulingInfo'});
    foreach my $job (@jobs) {
    my $pid = $job->schedulingInfo->locker;
    if (kill(0, $pid) != 1) { # see if we can signal the process
    print "job ", $job->id, " pid $pid died, unlocking\n";
    $job->schedulingInfo->busy(0);
    $job->schedulingInfo->locker("");
    $job->schedulingInfo->update;
    }
  • replacement in src/Hydra/programs/Runner.pl at line 28
    [3.8386][3.8386:8396]()
    }
    });
    [3.8386]
    [3.8397]
    });
    }
  • edit in src/Hydra/programs/Runner.pl at line 117
    [3.867]
    [3.867]
    unlockDeadJobs;