* Monitor for dead builds all the time.
[?]
Nov 28, 2008, 11:00 AM
WM5WAST3S67EWKA52NVQ2V55XO6E4WRPAOUGSQGA7XDX46ARX4OQCDependencies
- [2]
L2E6EVE2* Merged the Build and Job tables. - [3]
D7TT2BNK - [4]
TULPZ62Y* Perform builds in parallel. - [5]
CLJQCY2X* Store info about all the build actions and allow them to be - [6]
7YBYT2LQ - [7]
CURCK6C2
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 processprint "job ", $job->id, " pid $pid died, unlocking\n";$job->schedulingInfo->busy(0);$job->schedulingInfo->locker("");$job->schedulingInfo->update;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 processprint "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
}});});} - edit in src/Hydra/programs/Runner.pl at line 117
unlockDeadJobs;