Hydra/29: Added timeout to svn/git checkouts, job evaluation

[?]
May 18, 2010, 11:00 AM
CHQEG6WY44VSOTLNH5KDZWJCCHNHRUCX6BEREXUUO56VOKHNSUZAC

Dependencies

  • [2] 5DZPBNDE * hydra: on git ls-remote add refs/heads/ prefix to branchname to avoid other branches called master (or $branchname)
  • [3] 2WUNXJGW Hydra/26: Go back to using "svn export" as default for svn, added svn-checkout type for jobset which need .svn dirs. export is much more efficient
  • [4] KQS7DSKJ * Clean up indentation.
  • [5] WWUOQ7V4 * hydra: indentation and fixed duplicate key in cachedgitinputs bug
  • [6] JTRG7RDQ add support for git as jobinput
  • [7] 3XTHEUMP * Implemented the clone feature.
  • [8] BK24VA6Q * for git inputs, check latest revision of branch (defaults to master for now), if there is change, only use input if last checkout was > hour ago.
  • [9] YFPZ46YK * hydra: added variant of build input type, 'build output (same system)' to allow better continous integration in one jobset for multiple system. it makes sure that the system of the build that is passed as input for a job has the same system as the job.
  • [10] OOQ2D3KC * Refactoring: move fetchInput out of hydra_scheduler into a separate

Change contents

  • replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 161
    [3.257][4.3046:3155](),[4.3046][4.3046:3155]()
    (my $res, $stdout, $stderr) = captureStdoutStderr(
    "nix-prefetch-svn", $uri, $revision);
    [3.257]
    [4.3155]
    (my $res, $stdout, $stderr) = captureStdoutStderr(600,
    ("nix-prefetch-svn", $uri, $revision));
  • replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 278
    [4.120][4.120:175](),[4.175][2.0:58]()
    (my $res, $stdout, $stderr) = captureStdoutStderr(
    "git", "ls-remote", $uri, "refs/heads/".$branch);
    [4.120]
    [4.216]
    (my $res, $stdout, $stderr) = captureStdoutStderr(600,
    ("git", "ls-remote", $uri, "refs/heads/".$branch));
  • replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 320
    [4.948][4.7420:7529]()
    (my $res, $stdout, $stderr) = captureStdoutStderr(
    "nix-prefetch-git", $uri, $revision);
    [4.948]
    [4.7529]
    (my $res, $stdout, $stderr) = captureStdoutStderr(600,
    ("nix-prefetch-git", $uri, $revision));
  • edit in src/lib/Hydra/Helper/AddBuilds.pm at line 429
    [4.2296][4.2296:2297]()
  • replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 430
    [4.2323][4.2323:2467](),[4.2467][4.10397:10399](),[4.10397][4.10397:10399]()
    my $stdin = ""; my $stdout; my $stderr;
    my $res = IPC::Run::run(\@_, \$stdin, \$stdout, \$stderr);
    return ($res, $stdout, $stderr);
    }
    [4.2323]
    [4.2468]
    (my $timeout, my @cmd) = @_;
    my $res;
    my $stdin = "";
    my $stdout;
    my $stderr;
    eval {
    local $SIG{ALRM} = sub { die "timeout\n" }; # NB: \n required
    alarm $timeout;
  • edit in src/lib/Hydra/Helper/AddBuilds.pm at line 440
    [4.2469]
    [4.2469]
    $res = IPC::Run::run(\@cmd, \$stdin, \$stdout, \$stderr);
    alarm 0;
    };
    if ($@) {
    die unless $@ eq "timeout\n"; # propagate unexpected errors
    return (undef, undef, undef);
    } else {
    return ($res, $stdout, $stderr);
    }
    }
  • replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 461
    [4.2918][4.2918:3093]()
    (my $res, my $jobsXml, my $stderr) = captureStdoutStderr(
    "hydra_eval_jobs", $nixExprFullPath, "--gc-roots-dir", getGCRootsDir,
    inputsToArgs($inputInfo));
    [4.2918]
    [4.3093]
    (my $res, my $jobsXml, my $stderr) = captureStdoutStderr(10800,
    ("hydra_eval_jobs", $nixExprFullPath, "--gc-roots-dir", getGCRootsDir, inputsToArgs($inputInfo)));