Merge pull request #730 from NixOS/flake

[?]
Apr 7, 2020, 9:18 AM
HTDANBLNORWZLQYXGUADX4KMUNYGH75TDF3FMMGRKE4Q2CHQMEWQC

Dependencies

  • [2] QGLBQ5IO Remove hydra-eval-guile-jobs
  • [3] XCXMK24U Keep track of the number of unsupported steps
  • [4] IZOT24A3 Don't spam the journal with hydra-queue-runner status dumps
  • [5] 3A7HTJZP Merge branch 'master' into libpqxx_undeprecate
  • [6] NQPGIRXX Revert "hydra-eval-jobs -> nix eval-hydra-jobs"
  • [7] U55WNIDP Abort unsupported build steps
  • [8] 73YR46NJ hydra-queue-runner: Write directly to a binary cache
  • [9] RGCPOSHY hydra-queue-runner: Ensure regular status dumps
  • [10] SOB276BA Keep some statistics for the binary cache stores
  • [11] ZTVVUMTK JSONObject doesn't handle 64-bit integers
  • [12] 3BKPZ52C Disambiguate "marking build as succeeded" message
  • [13] EFWDY2V7 Support testing build determinism
  • [14] IK2UBDAU Revive jobset scheduling
  • [15] MJL3PDXI Fix duplicate step_finished notification
  • [16] FULDVXE2 Periodically dump/log status
  • [17] NKQOEVVP Get rid of "will retry" messages after "maybe cancelling..."
  • [18] 7CCLJLW7 Remove superfluous "has" function
  • [19] LPPZS34Y Merge remote-tracking branch 'origin/master' into flake
  • [20] 7LU6ECB5 Don't spam the journal with hydra-queue-runner status dumps
  • [21] XV4AEKJC hydra-queue-runner: Handle status queries on the main thread
  • [22] RND7XFNH getQueuedBuilds(): Periodically stop to handle priority bumps
  • [23] MSIHMO45 Tweak build steps
  • [24] UVQJBDHN Move log compression to a plugin
  • [25] ZPHREC7X hydra-eval-jobset: Support flakes
  • [26] IWB3F4Z6 Fail builds with previously failed steps early
  • [27] VU2OLHD2 Move most of AddBuilds to hydra-eval-jobset
  • [28] 7KLHBDYA Fix build
  • [29] 32KJOERM Turn hydra-notify into a daemon
  • [30] PQFOMNTL hydra-queue-runner: More stats
  • [31] OBOTGFG6 Prevent orphaned build steps
  • [32] BG6PEOB2 Make the output size limit configurable
  • [33] YTAYNN7V Queue monitor: Bail out earlier if a step has failed previously
  • [34] H7SZRHUB Use nix::willBuildLocally()
  • [35] K5G5GZY7 Guard against concurrent invocations of hydra-queue-runner
  • [36] Q6VFUIC6 Remove hydra-eval-guile-jobs
  • [37] FJ5H26J6 Fix building against nix master
  • [38] NSBNNM77 Add hydra.conf option "nar_buffer_size" to configure memoryTokens limit
  • [39] VQISTKOP hydra-queue-runner: Use substitutes
  • [40] LE4VZIY5 More stats
  • [41] 5N7LVAJN Keep track of requiredSystemFeatures in the machine stats
  • [42] UNVMKJV5 Unify build and step status codes
  • [43] GS4BE6TB Asynchronously compress build logs
  • [44] EPWEMRI2 Allow determinism checking for entire jobsets
  • [45] NWFDDRUG hydra-queue-runner: Limit concurrent database connections
  • [46] FJEK6FVU Fix build
  • [47] 3ECTCHKL Make queue runner internal status available under /queue-runner-status
  • [48] DWFTK56E Keep track of how many threads are waiting
  • [49] NJXD2ABJ Abort unsupported build steps
  • [50] NTEDD7T4 Provide a plugin hook for when build steps finish
  • [51] NJJ7H64S Very basic multi-threaded queue runner
  • [52] EBJP3MNA Build against nix-master
  • [53] 24BMQDZA Start of single-process hydra-queue-runner
  • [54] YTJBED7G Fix build
  • [55] 7LWB2J2Z Periodically clear orphaned build steps
  • [56] IKJBYIGY Update to reflect BinaryCacheStore changes
  • [57] 3VRZBVFX hydra-eval-jobs -> nix eval-hydra-jobs
  • [58] YE6LD6MF hydra-queue-runner: Recycle finishedDrvs
  • [59] RQUAATWB Add status dump facility
  • [60] EJJCY263 Account steps with preferLocalBuild as a separate system type
  • [61] XIFDDTXZ Don't lock the BuildSteps table when inserting
  • [62] 25MFPBZV Keep track of time required to load builds
  • [63] BRAESISH Warn if PostgreSQL appears stalled
  • [64] DKR2GXSA Update libpqxx usage to move away from deprecated API interactions.
  • [65] ZK76B5ZZ Load the queue in order of global priority
  • [66] DKJFD6JN Process Nix API changes
  • [67] 2DNPZFPN Step cancellation: Don't use pthread_cancel()
  • [68] WV4SSAIY Build against nix-master
  • [69] NYTT5WP3 Keep track of the number of unsupported steps
  • [70] MHVIT4JY Split hydra-queue-runner.cc more
  • [71] PLOZBRTR Add command ‘hydra-queue-runner --status’ to show current status
  • [72] LVQXQIYA Kill active build steps when builds are cancelled
  • [73] WDGARQ76 Reuse build products / metrics stored in the database
  • [*] ACBS7C6Q hydra-queue-runner: Detect changes to the scheduling shares
  • [*] N22GPKYT * Put info about logs / build products in the DB.

Change contents

  • edit in src/hydra-queue-runner/builder.cc at line 381
    [8.9302][7.2:90]()
    } else
    failStep(*conn, step, buildId, result, machine, stepFinished, quit);
  • resolve order conflict in src/hydra-queue-runner/builder.cc at line 381
    [8.88]
    [8.303]
  • edit in src/hydra-queue-runner/builder.cc at line 389
    [8.304][7.91:449]()
    // FIXME: keep stats about aborted steps?
    nrStepsDone++;
    totalStepTime += stepStopTime - stepStartTime;
    totalStepBuildTime += result.stopTime - result.startTime;
    machine->state->nrStepsDone++;
    machine->state->totalStepTime += stepStopTime - stepStartTime;
    machine->state->totalStepBuildTime += result.stopTime - result.startTime;
  • resolve order conflict in src/hydra-queue-runner/builder.cc at line 389
    [8.447]
    [8.9445]
  • edit in src/hydra-queue-runner/builder.cc at line 390
    [8.9446][8.448:518]()
    if (quit) exit(0); // testing hack; FIXME: this won't run plugins
  • edit in src/hydra-queue-runner/builder.cc at line 394
    [8.9490][7.521:541]()
    return sDone;
    }
  • resolve order conflict in src/hydra-queue-runner/builder.cc at line 394
    [8.539]
    [8.9780]
  • edit in src/hydra-queue-runner/builder.cc at line 407
    [8.306][7.542:852]()
    void State::failStep(
    Connection & conn,
    Step::ptr step,
    BuildID buildId,
    const RemoteResult & result,
    Machine::ptr machine,
    bool & stepFinished,
    bool & quit)
    {
    /* Register failure in the database for all Build objects that
    directly or indirectly depend on this step. */
  • resolve order conflict in src/hydra-queue-runner/builder.cc at line 407
    [8.850]
    [8.10305]
  • edit in src/hydra-queue-runner/builder.cc at line 409
    [8.10306][7.853:892]()
    std::vector<BuildID> dependentIDs;
  • resolve order conflict in src/hydra-queue-runner/builder.cc at line 409
    [8.890]
    [8.168]
  • edit in src/hydra-queue-runner/builder.cc at line 417
    [8.169][7.893:1154]()
    while (true) {
    /* Get the builds and steps that depend on this step. */
    std::set<Build::ptr> indirect;
    {
    auto steps_(steps.lock());
    std::set<Step::ptr> steps;
    getDependents(step, indirect, steps);
  • resolve order conflict in src/hydra-queue-runner/builder.cc at line 417
    [8.1152]
    [8.10806]
  • edit in src/hydra-queue-runner/builder.cc at line 418
    [8.10807][8.1153:1610]()
    /* If there are no builds left, delete all referring
    steps from ‘steps’. As for the success case, we can
    be certain no new referrers can be added. */
    if (indirect.empty()) {
    for (auto & s : steps) {
    printMsg(lvlDebug, "finishing build step ‘%s’",
    localStore->printStorePath(s->drvPath));
    steps_->erase(s->drvPath);
  • edit in src/hydra-queue-runner/builder.cc at line 429
    [8.12002][7.1613:1637]()
    }
    }
  • resolve order conflict in src/hydra-queue-runner/builder.cc at line 429
    [8.1635]
    [8.12002]
  • edit in src/hydra-queue-runner/builder.cc at line 431
    [8.12003][7.1638:1776]()
    if (indirect.empty() && stepFinished) break;
    /* Update the database. */
    {
    auto mc = startDbUpdate();
  • resolve order conflict in src/hydra-queue-runner/builder.cc at line 431
    [8.1689]
    [8.13050]
  • edit in src/hydra-queue-runner/builder.cc at line 435
    [8.13051][7.1777:1811]()
    pqxx::work txn(conn);
  • resolve order conflict in src/hydra-queue-runner/builder.cc at line 435
    [8.1774]
    [8.13409]
  • edit in src/hydra-queue-runner/builder.cc at line 437
    [8.13410][7.1812:2613](),[8.13410][7.1812:2613]()
    /* Create failed build steps for every build that
    depends on this, except when this step is cached
    and is the top-level of that build (since then it's
    redundant with the build's isCachedBuild field). */
    for (auto & build : indirect) {
    if ((result.stepStatus == bsCachedFailure && build->drvPath == step->drvPath) ||
    ((result.stepStatus != bsCachedFailure && result.stepStatus != bsUnsupported) && buildId == build->id) ||
    build->finishedInDB)
    continue;
    createBuildStep(txn,
    0, build->id, step, machine ? machine->sshName : "",
    result.stepStatus, result.errorMsg, buildId == build->id ? 0 : buildId);
  • resolve order conflict in src/hydra-queue-runner/builder.cc at line 437
    [8.1809]
    [8.352]
  • edit in src/hydra-queue-runner/builder.cc at line 451
    [8.353][7.2614:3457]()
    /* Mark all builds that depend on this derivation as failed. */
    for (auto & build : indirect) {
    if (build->finishedInDB) continue;
    printMsg(lvlError, format("marking build %1% as failed") % build->id);
    txn.parameterized
    ("update Builds set finished = 1, buildStatus = $2, startTime = $3, stopTime = $4, isCachedBuild = $5, notificationPendingSince = $4 where id = $1 and finished = 0")
    (build->id)
    ((int) (build->drvPath != step->drvPath && result.buildStatus() == bsFailed ? bsDepFailed : result.buildStatus()))
    (result.startTime)
    (result.stopTime)
    (result.stepStatus == bsCachedFailure ? 1 : 0).exec();
    nrBuildsDone++;
    }
  • resolve order conflict in src/hydra-queue-runner/builder.cc at line 451
    [8.2625]
    [8.13454]
  • resurrect zombie in src/hydra-queue-runner/builder.cc at line 452
    [8.13455][8.2626:2884](),[8.13455][8.2626:2884]()
    /* Mark all builds that depend on this derivation as failed. */
    for (auto & build : indirect) {
    if (build->finishedInDB) continue;
    printMsg(lvlError, format("marking build %1% as failed") % build->id);
  • resurrect zombie in src/hydra-queue-runner/builder.cc at line 463
    [5.592][8.3423:3455](),[8.3423][8.3423:3455](),[8.3423][8.3423:3455]()
    nrBuildsDone++;
  • edit in src/hydra-queue-runner/builder.cc at line 464
    [8.13455][7.3458:3817]()
    /* Remember failed paths in the database so that they
    won't be built again. */
    if (result.stepStatus != bsCachedFailure && result.canCache)
    for (auto & path : step->drv->outputPaths())
    txn.parameterized("insert into FailedPaths values ($1)")(localStore->printStorePath(path)).exec();
  • resolve order conflict in src/hydra-queue-runner/builder.cc at line 464
    [8.3455]
  • edit in src/hydra-queue-runner/builder.cc at line 464
    [0.23]
    [8.13865]
    }
  • edit in src/hydra-queue-runner/builder.cc at line 476
    [8.14172][7.3818:3847]()
    stepFinished = true;
  • resolve order conflict in src/hydra-queue-runner/builder.cc at line 476
    [8.3846]
    [8.14530]
  • edit in src/hydra-queue-runner/builder.cc at line 477
    [8.14531][8.3847:4217]()
    /* Remove the indirect dependencies from ‘builds’. This
    will cause them to be destroyed. */
    for (auto & b : indirect) {
    auto builds_(builds.lock());
    b->finishedInDB = true;
    builds_->erase(b->id);
    dependentIDs.push_back(b->id);
    if (buildOne == b->id) quit = true;
    }
    }
  • edit in src/hydra-queue-runner/builder.cc at line 494
    [8.14571][7.4219:4405]()
    /* Send notification about this build and its dependents. */
    {
    pqxx::work txn(conn);
    notifyBuildFinished(txn, buildId, dependentIDs);
    txn.commit();
    }
  • resolve order conflict in src/hydra-queue-runner/builder.cc at line 494
    [8.4404]
    [8.14589]
  • edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 50
    [8.43][8.6906:6980]()
    , maxUnsupportedTime(config->getIntOption("max_unsupported_time", 0))
  • resurrect zombie in src/hydra-queue-runner/hydra-queue-runner.cc at line 271
    [5.864][8.3251:3373](),[8.9041][8.3251:3373](),[8.9041][8.3251:3373]()
    txn.exec_params0
    ("insert into BuildStepOutputs (build, stepnr, name, path) values ($1, $2, $3, $4)",
  • edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 457
    [8.1390][8.6889:7064](),[8.7064][7.6999:6999]()
    for (auto & path : step->drv->outputPaths())
    if (!txn.parameterized("select 1 from FailedPaths where path = $1")(localStore->printStorePath(path)).exec().empty())
  • resolve order conflict in src/hydra-queue-runner/hydra-queue-runner.cc at line 457
    [5.1270]
    [8.1535]
  • edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 492
    [8.3009][4.0:42]()
    void State::dumpStatus(Connection & conn)
  • edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 524
    [8.305][3.105:166]()
    root.attr("nrUnsupportedSteps", nrUnsupportedSteps);
  • edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 781
    [8.3821][4.43:70]()
    dumpStatus(*conn);
  • edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 844
    [8.551][4.71:150]()
    conn->await_notification();
    dumpStatus(*conn);
  • edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 896
    [8.968][8.6727:6773](),[8.968][8.6727:6773](),[8.6773][7.6997:6997](),[8.6773][7.6997:6997](),[8.446][8.6390:6442](),[8.446][8.6390:6442](),[8.109][8.6443:6473](),[8.109][8.6443:6473](),[8.6473][7.6991:6991](),[8.6473][7.6991:6991](),[8.6442][7.6989:6989](),[8.6442][7.6989:6989]()
    (localStore->printStorePath(drvPath))
    (localStore->printStorePath(step->drvPath))
    (step->drv->platform)
  • resolve order conflict in src/hydra-queue-runner/hydra-queue-runner.cc at line 896
    [8.19578]
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 87
    [8.82][8.7142:7197]()
    std::multimap<StorePath, BuildID> newBuildsByPath;
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 87
    [8.6690]
    [8.312]
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 107
    [8.22391][8.0:124]()
    auto build = std::make_shared<Build>(
    localStore->parseStorePath(row["drvPath"].as<string>()));
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 107
    [8.124]
    [8.22443]
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 120
    [8.474][8.6778:6859]()
    newBuildsByPath.emplace(std::make_pair(build->drvPath.clone(), id));
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 127
    [8.22981][8.6860:6898]()
    std::set<StorePath> finishedDrvs;
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 163
    [8.514][8.6899:7058]()
    printMsg(lvlError, "marking build %d as cached failure due to ‘%s’",
    build->id, localStore->printStorePath(ex.step->drvPath));
  • resurrect zombie in src/hydra-queue-runner/queue-monitor.cc at line 180
    [5.1408][8.8047:8281](),[8.1341][8.8047:8281](),[8.1341][8.8047:8281]()
    auto res = txn.exec_params
    ("select max(s.build) from BuildSteps s join BuildStepOutputs o on s.build = o.build where path = $1 and startTime != 0 and stopTime != 0 and status = 1",
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 222
    [8.24863][8.7795:7897]()
    Derivation drv = readDerivation(*localStore, localStore->printStorePath(build->drvPath));
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 222
    [8.7390]
    [8.0]
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 232
    [8.25051][8.7898:7983]()
    printMsg(lvlInfo, "marking build %1% as succeeded (cached)", build->id);
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 232
    [8.7476]
    [8.25051]
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 256
    [8.27614][8.7984:8151]()
    printMsg(lvlChatty, "added build %1% (top-level step %2%, %3% new steps)",
    build->id, localStore->printStorePath(step->drvPath), newSteps.size());
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 256
    [8.7644]
    [8.27764]
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 275
    [8.28224][8.7645:7715]()
    e.addPrefix(fmt("while loading build %1%: ", build->id));
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 362
    [8.1782][8.7716:7842]()
    activeStepState->pid,
    localStore->printStorePath(activeStep->step->drvPath));
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 366
    [8.1998][8.7843:7972]()
    localStore->printStorePath(activeStep->step->drvPath),
    strerror(errno));
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 376
    [8.12870][8.7973:8133]()
    Connection & conn, Build::ptr build, const StorePath & drvPath,
    Build::ptr referringBuild, Step::ptr referringStep, std::set<StorePath> & finishedDrvs,
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 405
    [8.30643][8.125:185]()
    step = std::make_shared<Step>(drvPath.clone());
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 419
    [8.31006][8.8180:8237]()
    steps_->insert_or_assign(drvPath.clone(), step);
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 425
    [8.31078][8.8745:8842]()
    printMsg(lvlDebug, "considering derivation ‘%1%’", localStore->printStorePath(drvPath));
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 425
    [8.8335]
    [8.31156]
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 432
    [8.31403][8.8843:9042]()
    step->drv = std::make_unique<Derivation>(readDerivation(*localStore, localStore->printStorePath(drvPath)));
    step->parsedDrv = std::make_unique<ParsedDerivation>(drvPath.clone(), *step->drv);
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 432
    [8.8535]
    [8.0]
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 435
    [8.285][8.9043:9130]()
    step->isDeterministic = get(step->drv->env, "isDetermistic").value_or("0") == "1";
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 435
    [8.8623]
    [8.197]
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 437
    [8.198][8.9131:9175]()
    step->systemType = step->drv->platform;
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 437
    [8.8668]
    [8.31444]
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 438
    [8.31450][8.8669:8733]()
    auto i = step->drv->env.find("requiredSystemFeatures");
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 440
    [8.227][8.8734:8773]()
    if (i != step->drv->env.end())
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 457
    [8.31904][8.9281:9326]()
    auto outputs = step->drv->outputPaths();
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 457
    [8.8819]
    [8.1574]
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 459
    [8.1605][8.9327:9367]()
    for (auto & i : step->drv->outputs)
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 459
    [8.8860]
    [8.12871]
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 463
    [8.32022][8.9368:9532]()
    missing.insert_or_assign(i.first,
    DerivationOutput(i.second.path.clone(), std::string(i.second.hashAlgo), std::string(i.second.hash)));
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 463
    [8.9025]
    [8.573]
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 475
    [8.962][8.9026:9116]()
    localStore->querySubstitutablePathInfos(singleton(i.second.path), infos);
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 488
    [8.1279][8.9117:9346]()
    printInfo("copying output ‘%1%’ of ‘%2%’ from local store",
    localStore->printStorePath(i.second.path),
    localStore->printStorePath(drvPath));
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 495
    [8.1423][8.9854:10071]()
    printInfo("substituting output ‘%1%’ of ‘%2%’",
    localStore->printStorePath(i.second.path),
    localStore->printStorePath(drvPath));
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 495
    [8.9564]
    [8.1528]
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 500
    [8.1700][8.10072:10166]()
    copyClosure(ref<Store>(localStore), destStore, singleton(i.second.path));
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 500
    [8.9659]
    [8.2442]
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 511
    [8.2872][8.9660:9916]()
    printError("while copying/substituting output ‘%s’ of ‘%s’: %s",
    localStore->printStorePath(i.second.path),
    localStore->printStorePath(drvPath),
    e.what());
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 525
    [8.32140][8.10424:10470]()
    finishedDrvs.insert(drvPath.clone());
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 525
    [8.9963]
    [8.32178]
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 530
    [8.32235][8.10471:10565]()
    printMsg(lvlDebug, "creating build step ‘%1%’", localStore->printStorePath(drvPath));
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 530
    [8.10058]
    [8.32337]
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 533
    [8.32383][8.10566:10610]()
    for (auto & i : step->drv->inputDrvs) {
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 533
    [8.10103]
    [8.13064]
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 624
    [8.544][8.10611:10680](),[8.544][8.10611:10680]()
    (localStore->printStorePath(output.second.path)).exec();
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 624
    [5.1554]
    [8.585]
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 680
    [8.1276][8.7642:7708](),[8.1276][8.7642:7708](),[8.1105][8.7566:7641](),[8.1105][8.7566:7641]()
    for (auto & output : ex.step->drv->outputs) {
    (localStore->printStorePath(ex.step->drvPath)).exec();
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 680
    [75.1125]
  • resurrect zombie in src/script/hydra-eval-jobset at line 343
    [8.434][6.9876:10105](),[8.434][6.9876:10105](),[8.721][8.762:768](),[8.1462][8.762:768](),[6.10105][8.762:768](),[8.762][8.762:768](),[8.762][8.762:768]()
    @cmd = ("hydra-eval-jobs",
    "<" . $nixExprInputName . "/" . $nixExprPath . ">",
    "--gc-roots-dir", getGCRootsDir,
    "--max-jobs", 1,
    inputsToArgs($inputInfo));
    }