Merge branch 'master' into libpqxx_undeprecate

[?]
Apr 1, 2020, 6:54 PM
3A7HTJZP2B6NC4XOGHBO3SQSZVUXTSK5OZZH2JU5W3THSQHYU4XAC

Dependencies

  • [2] DKR2GXSA Update libpqxx usage to move away from deprecated API interactions.
  • [3] UANT7MOV hydra-evaluator: add a 'ONE_AT_A_TIME' evaluator style
  • [4] NJXD2ABJ Abort unsupported build steps
  • [5] WV4SSAIY Build against nix-master
  • [6] UQQ4IL55 Add a error type for "unsupported system type"
  • [7] 62MQPRXC Pass null values to libpqxx properly
  • [8] MSIHMO45 Tweak build steps
  • [9] VQISTKOP hydra-queue-runner: Use substitutes
  • [10] DKJFD6JN Process Nix API changes
  • [11] 4YCF3KBG Concurrent hydra-evaluator
  • [12] 32KJOERM Turn hydra-notify into a daemon
  • [13] UNVMKJV5 Unify build and step status codes
  • [14] PQFOMNTL hydra-queue-runner: More stats
  • [15] YTAYNN7V Queue monitor: Bail out earlier if a step has failed previously
  • [16] IWB3F4Z6 Fail builds with previously failed steps early
  • [17] MHVIT4JY Split hydra-queue-runner.cc more
  • [18] BG6PEOB2 Make the output size limit configurable
  • [19] XIFDDTXZ Don't lock the BuildSteps table when inserting
  • [20] WDGARQ76 Reuse build products / metrics stored in the database
  • [21] LVQXQIYA Kill active build steps when builds are cancelled
  • [22] 24BMQDZA Start of single-process hydra-queue-runner
  • [23] KBZHIGLG Record the machine used for a build step
  • [24] P6EWEJHL hydra-evaluator: Allow setting the maximum number of concurrent evaluations

Change contents

  • resurrect zombie in src/hydra-evaluator/hydra-evaluator.cc at line 70
    [5.1490][2.0:28](),[5.1490][2.0:28]()
    auto res = txn.exec
  • edit in src/hydra-evaluator/hydra-evaluator.cc at line 71
    [5.1664][2.29:86](),[5.1664][2.29:86]()
    "where j.enabled != 0 and p.enabled != 0");
  • resurrect zombie in src/hydra-evaluator/hydra-evaluator.cc at line 71
    [5.1527][3.150:316](),[5.1527][3.150:316]()
    ("select project, j.name, lastCheckedTime, triggerTime, checkInterval, j.enabled as jobset_enabled from Jobsets j join Projects p on j.project = p.name "
  • resolve order conflict in src/hydra-evaluator/hydra-evaluator.cc at line 71
    [2.28]
    [3.150]
  • edit in src/hydra-evaluator/hydra-evaluator.cc at line 72
    [3.316]
    [5.1728]
    "where j.enabled != 0 and p.enabled != 0");
  • edit in src/hydra-queue-runner/builder.cc at line 430
    [5.12489][2.1384:1945](),[5.12489][2.1384:1945]()
    txn.exec_params0
    ("update Builds set finished = 1, buildStatus = $2, startTime = $3, stopTime = $4, isCachedBuild = $5, notificationPendingSince = $4 where id = $1 and finished = 0",
    build2->id,
    (int) (build2->drvPath != step->drvPath && result.buildStatus() == bsFailed ? bsDepFailed : result.buildStatus()),
    result.startTime,
    result.stopTime,
    result.stepStatus == bsCachedFailure ? 1 : 0);
  • edit in src/hydra-queue-runner/builder.cc at line 432
    [5.759][2.1946:2033](),[5.759][2.1946:2033]()
    txn.exec_params0("insert into FailedPaths values ($1)", path);
  • replacement in src/hydra-queue-runner/builder.cc at line 456
    [4.2884][4.2884:3423]()
    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();
    [4.2884]
    [4.3423]
    txn.exec_params0
    ("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);
  • replacement in src/hydra-queue-runner/builder.cc at line 469
    [4.3635][4.3635:3815]()
    for (auto & path : step->drv->outputPaths())
    txn.parameterized("insert into FailedPaths values ($1)")(localStore->printStorePath(path)).exec();
    [4.3635]
    [4.3815]
    for (auto & path : step->drv.outputPaths())
    txn.exec_params0("insert into FailedPaths values ($1)", localStore->printStorePath(path));
  • replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 258
    [2.2729][2.2729:2753]()
    step->drvPath,
    [2.2729]
    [2.2753]
    localStore->printStorePath(step->drvPath),
  • edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 267
    [5.446][5.5883:5935](),[5.446][5.5883:5935](),[5.109][5.5936:5966](),[5.109][5.5936:5966]()
    (localStore->printStorePath(step->drvPath))
    (step->drv->platform)
  • resolve order conflict in src/hydra-queue-runner/hydra-queue-runner.cc at line 267
    [2.3250]
    [5.269]
  • resurrect zombie in src/hydra-queue-runner/hydra-queue-runner.cc at line 270
    [5.9041][2.3251:3373](),[5.9041][2.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 270
    [5.8997]
    [2.3251]
    for (auto & output : step->drv.outputs)
  • edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 273
    [2.3373][2.3373:3438](),[2.3373][2.3373:3438](),[5.8997][5.5967:6012](),[5.8997][5.5967:6012](),[5.9164][5.6013:6113](),[5.9164][5.6013:6113]()
    buildId, stepNr, output.first, output.second.path);
    for (auto & output : step->drv->outputs)
    (buildId)(stepNr)(output.first)(localStore->printStorePath(output.second.path)).exec();
  • resolve order conflict in src/hydra-queue-runner/hydra-queue-runner.cc at line 273
    [2.3373]
  • edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 273
    [0.866]
    [5.9238]
    buildId, stepNr, output.first, localStore->printStorePath(output.second.path));
  • replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 324
    [2.4663][2.4663:4681]()
    drvPath,
    [2.4663]
    [2.4681]
    (localStore->printStorePath(drvPath)),
  • edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 329
    [5.968][5.6220:6266](),[5.968][5.6220:6266]()
    (localStore->printStorePath(drvPath))
  • resolve order conflict in src/hydra-queue-runner/hydra-queue-runner.cc at line 329
    [2.4745]
    [5.524]
  • edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 334
    [2.4860][2.4860:4912](),[5.1173][5.6267:6381](),[5.1173][5.6267:6381]()
    build->id, stepNr, outputName, storePath);
    (build->id)
    (stepNr)
    (outputName)
    (localStore->printStorePath(storePath)).exec();
  • resolve order conflict in src/hydra-queue-runner/hydra-queue-runner.cc at line 334
    [2.4860]
  • edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 334
    [0.1013]
    [5.1232]
    build->id, stepNr, outputName,
    localStore->printStorePath(storePath));
  • replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 455
    [5.808][2.6883:6972](),[5.808][2.6883:6972](),[5.1390][5.6382:6557]()
    if (!txn.exec_params("select 1 from FailedPaths where path = $1", path).empty())
    for (auto & path : step->drv->outputPaths())
    if (!txn.parameterized("select 1 from FailedPaths where path = $1")(localStore->printStorePath(path)).exec().empty())
    [5.1390]
    [5.1535]
    for (auto & path : step->drv.outputPaths())
    if (!txn.exec_params("select 1 from FailedPaths where path = $1", localStore->printStorePath(path)).empty())
  • replacement in src/hydra-queue-runner/queue-monitor.cc at line 175
    [2.7928][2.7928:7968]()
    ex.step->drvPath);
    [2.7928]
    [2.7968]
    localStore->printStorePathh(ex.step->drvPath));
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 177
    [5.1105][5.7059:7134](),[5.1105][5.7059:7134]()
    (localStore->printStorePath(ex.step->drvPath)).exec();
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 177
    [2.8046]
    [5.1236]
  • resurrect zombie in src/hydra-queue-runner/queue-monitor.cc at line 179
    [5.1341][2.8047:8281](),[5.1341][2.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 179
    [5.1276]
    [2.8047]
    for (auto & output : ex.step->drv.outputs) {
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 182
    [2.8281][2.8281:8331](),[2.8281][2.8281:8331](),[5.1276][5.7135:7201](),[5.1276][5.7135:7201](),[5.1577][5.7202:7287](),[5.1577][5.7202:7287]()
    output.second.path);
    for (auto & output : ex.step->drv->outputs) {
    (localStore->printStorePath(output.second.path)).exec();
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 182
    [2.8281]
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 182
    [0.1410]
    [5.1634]
    localStore->printStorePath(output.second.path));
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 623
    [2.9180][2.9180:9214](),[5.544][5.10104:10173](),[5.544][5.10104:10173]()
    output.second.path);
    (localStore->printStorePath(output.second.path)).exec();
  • resolve order conflict in src/hydra-queue-runner/queue-monitor.cc at line 623
    [2.9180]
  • edit in src/hydra-queue-runner/queue-monitor.cc at line 623
    [0.1491]
    [5.585]
    localStore->printStorePath(output.second.path));