* Don't ignore SIGCHLD after all, Perl doesn't like it. Just do

[?]
Nov 29, 2008, 1:20 AM
D6YQQQCNJT7RJ4KF5JN76NM5HT4FVROBGSNB26LYPRYVLEG576MAC

Dependencies

Change contents

  • replacement in src/Hydra/script/hydra_queue_runner.pl at line 6
    [3.1114][3.244:264](),[3.1564][3.244:264](),[3.7850][3.244:264]()
    use POSIX qw(dup2);
    [3.1114]
    [3.187]
    use POSIX qw(dup2 :sys_wait_h);
  • replacement in src/Hydra/script/hydra_queue_runner.pl at line 17
    [2.1][2.1:24]()
    $SIG{CHLD} = 'IGNORE';
    [2.1]
    [3.7966]
    #$SIG{CHLD} = 'IGNORE';
  • replacement in src/Hydra/script/hydra_queue_runner.pl at line 27
    [3.225][3.302:375](),[3.302][3.302:375]()
    if (kill(0, $pid) != 1) { # see if we can signal the process
    [3.225]
    [3.226]
    my $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
    [3.867]
    [3.1597]
    # Clean up zombies.
    while ((waitpid(-1, &WNOHANG)) > 0) { };
  • edit in src/Hydra/script/hydra_queue_runner.pl at line 143
    [3.1623]
    [3.1623]
  • replacement in src/Hydra/script/hydra_scheduler.pl at line 428
    [3.1022][3.1022:1036]()
    sleep 10;
    [3.1022]
    [3.1036]
    sleep 30;