* Don't ignore SIGCHLD after all, Perl doesn't like it. Just do
[?]
Nov 29, 2008, 1:20 AM
D6YQQQCNJT7RJ4KF5JN76NM5HT4FVROBGSNB26LYPRYVLEG576MACDependencies
- [2]
YTESD75Z* Get rid of zombies. - [3]
JK2QWPH6 - [4]
TULPZ62Y* Perform builds in parallel. - [5]
WHAFVCEI - [6]
AFTXA575* $HYDRA_DATA environment variable. - [7]
T4LLYESZ* Nix expression for building Hydra. - [8]
7YBYT2LQ - [9]
DQD7JMSU* Fix the terminology. - [10]
X27GNHDV* Basic job info in the database. - [11]
WM5WAST3* Monitor for dead builds all the time. - [*]
N22GPKYT* Put info about logs / build products in the DB.
Change contents
- replacement in src/Hydra/script/hydra_queue_runner.pl at line 6
use POSIX qw(dup2);use POSIX qw(dup2 :sys_wait_h); - replacement in src/Hydra/script/hydra_queue_runner.pl at line 17
$SIG{CHLD} = 'IGNORE';#$SIG{CHLD} = 'IGNORE'; - replacement in src/Hydra/script/hydra_queue_runner.pl at line 27
if (kill(0, $pid) != 1) { # see if we can signal the processmy $unlock = 0;if ($pid == $$) {# Work around sqlite locking timeouts: if the child# barfed because of a locked DB before updating the# `locker' field, then `locker' is still set to $$.# So if after 2 minutes it hasn't been updated,# unlock the build. !!! need a better fix for those# locking timeouts.if ($build->schedulingInfo->starttime + 10 < time) {$unlock = 1;}} elsif (kill(0, $pid) != 1) { # see if we can signal the process$unlock = 1;}if ($unlock) { - edit in src/Hydra/script/hydra_queue_runner.pl at line 139
# Clean up zombies.while ((waitpid(-1, &WNOHANG)) > 0) { }; - edit in src/Hydra/script/hydra_queue_runner.pl at line 143
- replacement in src/Hydra/script/hydra_scheduler.pl at line 428
sleep 10;sleep 30;