hydra-evaluator: Add some debug code

[?]
Apr 9, 2015, 3:35 PM
WVD3YYON22ES6LFQTX7LYBXTEBERGIN2DHOJC6M36UJ4KS4IHS2QC

Dependencies

  • [2] PDZD5QOR hydra-evaluator: handle the case where there is no previous jobset eval
  • [3] 53PW36WS hydra-evaluator: When evaluating a single jobset, exit with a failure code if evaluation fails
  • [4] IMQRX4MP hydra-eval-jobs: Use JSON instead of XML
  • [5] 5GPK54IV Log segfaults from the evaluator
  • [6] 5SHCWE7X * Prevent repeated evaluation of a jobset with the same inputs. This
  • [7] 3XTHEUMP * Implemented the clone feature.
  • [8] RFE6T5LG * Store jobset evaluations in the database explicitly. This includes
  • [9] RXVJFQ5A Evaluator cleanups
  • [10] QMW24O5S Add support for Guile & Guix.
  • [11] PXUCXYZI * Pass `-j 1' to hydra_eval_jobs to ensure that it can make progress
  • [12] CHQEG6WY Hydra/29: Added timeout to svn/git checkouts, job evaluation
  • [13] PIMGMGAF Rename hydra_eval_jobs to hydra-eval-jobs
  • [14] 7ZYBTNJJ revert unmeant previous change which caused errors to stay, even after successful evaluation of jobs
  • [15] SS4TZXNU Distinguish between permanent evaluation errors and transient input errors
  • [16] PCKLFRT5 Support push notification of repository changes
  • [17] A43SLRSH Fix handling of IPC::Run::run exit status
  • [18] NI5BVF2V * In job inputs of type "build", allow the project and jobset names of
  • [19] FYO6NECE hydra
  • [20] INNOEHO6 * Fix getBuildLog for bzip2'd files.
  • [*] OOQ2D3KC * Refactoring: move fetchInput out of hydra_scheduler into a separate
  • [*] N22GPKYT * Put info about logs / build products in the DB.
  • [*] OVR2RWBI hydra-evaluator: Always pick the jobset that hasn't been evaluated longest

Change contents

  • edit in src/lib/Hydra/Helper/AddBuilds.pm at line 333
    [5.2483][5.2483:2528]()
    print STDERR "evaluator ${evaluator}\n";
  • replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 334
    [5.2529][4.1946:2015](),[4.2015][5.3347:3465](),[5.906][5.3347:3465]()
    (my $res, my $jobsJSON, my $stderr) = captureStdoutStderr(10800,
    $evaluator, $nixExprFullPath, "--gc-roots-dir", getGCRootsDir, "-j", 1, inputsToArgs($inputInfo, $exprType));
    [5.2529]
    [4.2016]
    my @cmd = ($evaluator, $nixExprFullPath, "--gc-roots-dir", getGCRootsDir, "-j", 1, inputsToArgs($inputInfo, $exprType));
    if (defined $ENV{'HYDRA_DEBUG'}) {
    sub escape {
    my $s = $_;
    $s =~ s/'/'\\''/g;
    return "'" . $s . "'";
    }
    my @escaped = map escape, @cmd;
    print STDERR "evaluator: @escaped\n";
    }
    (my $res, my $jobsJSON, my $stderr) = captureStdoutStderr(10800, @cmd);
  • edit in src/script/hydra-evaluator at line 28
    [24.86]
    [5.5400]
    my $dryRun = defined $ENV{'HYDRA_DRY_RUN'};
  • replacement in src/script/hydra-evaluator at line 116
    [5.1029][5.1029:1110]()
    $jobset->update({ lastcheckedtime => time, fetcherrormsg => $msg });
    [5.1029]
    [5.1110]
    $jobset->update({ lastcheckedtime => time, fetcherrormsg => $msg }) if !$dryRun;
  • replacement in src/script/hydra-evaluator at line 128
    [2.55][2.55:116]()
    if (defined $prevEval && $prevEval->hash eq $argsHash) {
    [2.55]
    [5.1961]
    if (defined $prevEval && $prevEval->hash eq $argsHash && !$dryRun) {
  • edit in src/script/hydra-evaluator at line 140
    [5.5575]
    [4.2681]
    if ($dryRun) {
    foreach my $name (keys %{$jobs}) {
    my $job = $jobs->{$name};
    if (defined $job->{drvPath}) {
    print STDERR "good job $name: $job->{drvPath}\n";
    } else {
    print STDERR "failed job $name: $job->{error}\n";
    }
    }
    return;
    }
  • replacement in src/script/hydra-evaluator at line 284
    [5.178][5.2198:2210]()
    });
    [5.178]
    [3.21]
    }) if !$dryRun;
  • replacement in src/script/hydra-evaluator at line 296
    [5.178][5.2480:2492](),[5.2599][5.2480:2492](),[5.5088][5.2480:2492](),[5.2480][5.2480:2492]()
    });
    [5.2599]
    [5.2492]
    }) if !$dryRun;
  • edit in src/script/hydra-evaluator at line 298
    [5.2498]
    [3.43]