Fix build with latest Nix
[?]
Sep 26, 2020, 9:37 PM
W7OCNTLFXNRGEHMQ5WBX4Z2Q6II3APKTLNWH76ZYZNRZDEVQACLACDependencies
- [2]
6NUK6AZAFix build - [3]
24BMQDZAStart of single-process hydra-queue-runner - [4]
UQQ4IL55Add a error type for "unsupported system type" - [5]
DKJFD6JNProcess Nix API changes - [6]
BYVRA54QTemporarily disable machines on any exception, not just connection failures - [7]
IWB3F4Z6Fail builds with previously failed steps early - [8]
WV4SSAIYBuild against nix-master - [9]
XIFDDTXZDon't lock the BuildSteps table when inserting - [10]
DKR2GXSAUpdate libpqxx usage to move away from deprecated API interactions. - [11]
YSZQ3ORRFix build - [12]
SL3WSRAChydra-queue-runner: Limit memory usage - [13]
IKJBYIGYUpdate to reflect BinaryCacheStore changes - [14]
NJJ7H64SVery basic multi-threaded queue runner - [15]
VQISTKOPhydra-queue-runner: Use substitutes - [16]
BAFICF73Support hydra-build-products on binary cache stores - [17]
SJTXNMXURemove added strictness to allow multiple query returns. - [18]
WDGARQ76Reuse build products / metrics stored in the database - [19]
3A7HTJZPMerge branch 'master' into libpqxx_undeprecate - [20]
ACBS7C6Qhydra-queue-runner: Detect changes to the scheduling shares - [21]
LVQXQIYAKill active build steps when builds are cancelled - [22]
YTAYNN7VQueue monitor: Bail out earlier if a step has failed previously - [23]
BOCPRQ6EFix build against latest Nix - [24]
HTDANBLNMerge pull request #730 from NixOS/flake - [25]
H46LUUZYhydra-queue-runner: don't try to distribute builds on localhost - [26]
NAYQT2GThydra-queue-runner: Use cmdBuildDerivation - [27]
5AIYUMTBBasic remote building - [28]
PQFOMNTLhydra-queue-runner: More stats - [29]
73YR46NJhydra-queue-runner: Write directly to a binary cache - [30]
EBJP3MNABuild against nix-master - [31]
YXYXJDMBhydra-queue-runner: Write GC roots for outputs paths - [32]
62MQPRXCPass null values to libpqxx properly - [33]
BG6PEOB2Make the output size limit configurable - [34]
INVXGPNKFix root creation when the root already exists but is owned by another user - [35]
NJXD2ABJAbort unsupported build steps - [36]
OBOTGFG6Prevent orphaned build steps - [37]
MHVIT4JYSplit hydra-queue-runner.cc more - [38]
BRAESISHWarn if PostgreSQL appears stalled - [39]
QHO6IDC7Fix build - [40]
U55WNIDPAbort unsupported build steps - [41]
KBZHIGLGRecord the machine used for a build step - [*]
NQPGIRXXRevert "hydra-eval-jobs -> nix eval-hydra-jobs"
Change contents
- edit in src/hydra-eval-jobs/hydra-eval-jobs.cc at line 3[43.566][43.623]
#include <thread> - replacement in src/hydra-queue-runner/build-remote.cc at line 266
auto outPath = i->path(*localStore, drv2.name);inputs.insert(outPath);basicDrv.inputSrcs.insert(outPath);auto outPath = i->path(*localStore, drv2.name, name);inputs.insert(*outPath);basicDrv.inputSrcs.insert(*outPath); - replacement in src/hydra-queue-runner/build-remote.cc at line 437
auto outputs = step->drv->outputPaths(*localStore);StorePathSet outputs;for (auto & i : step->drv->outputsAndOptPaths(*localStore)) {if (i.second.second)outputs.insert(*i.second.second);} - replacement in src/hydra-queue-runner/build-result.cc at line 19
auto outputs = drv.outputPaths(*store);StorePathSet outputs; - replacement in src/hydra-queue-runner/build-result.cc at line 21[3.2807]→[3.790:824](∅→∅),[3.3314]→[3.790:824](∅→∅),[3.790]→[3.790:824](∅→∅),[3.824]→[3.1303:1353](∅→∅)
for (auto & output : outputs)store->computeFSClosure(output, closure);for (auto & i : drv.outputsAndOptPaths(*store))if (i.second.second) {store->computeFSClosure(*i.second.second, closure);outputs.insert(*i.second.second);} - replacement in src/hydra-queue-runner/build-result.cc at line 110
for (auto & output : drv.outputs) {for (auto & [name, output] : drv.outputs) { - replacement in src/hydra-queue-runner/build-result.cc at line 112
auto outPath = output.second.path(*store, drv.name);product.path = store->printStorePath(outPath);auto outPath = output.path(*store, drv.name, name);product.path = store->printStorePath(*outPath); - replacement in src/hydra-queue-runner/build-result.cc at line 115
product.subtype = output.first == "out" ? "" : output.first;product.name = outPath.name();product.subtype = name == "out" ? "" : name;product.name = outPath->name(); - replacement in src/hydra-queue-runner/builder.cc at line 277[3.5815]→[2.1429:1493](∅→∅),[2.1493]→[3.0:27](∅→∅),[3.4908]→[3.0:27](∅→∅),[3.5415]→[3.0:27](∅→∅),[3.52]→[3.0:27](∅→∅)
for (auto & path : step->drv->outputPaths(*localStore))addRoot(path);for (auto & i : step->drv->outputsAndOptPaths(*localStore)) {if (i.second.second)addRoot(*i.second.second);} - replacement in src/hydra-queue-runner/builder.cc at line 468[3.3635]→[2.1494:1566](∅→∅),[3.61]→[3.653:764](∅→∅),[2.1566]→[3.653:764](∅→∅),[3.653]→[3.653:764](∅→∅)
for (auto & path : step->drv->outputPaths(*localStore))txn.exec_params0("insert into FailedPaths values ($1)", localStore->printStorePath(path));for (auto & i : step->drv->outputsAndOptPaths(*localStore))if (i.second.second)txn.exec_params0("insert into FailedPaths values ($1)", localStore->printStorePath(*i.second.second)); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 259
for (auto & output : step->drv->outputs)for (auto & [name, output] : step->drv->outputs) - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 262
buildId, stepNr, output.first, localStore->printStorePath(output.second.path(*localStore, step->drv->name)));buildId, stepNr, name, localStore->printStorePath(*output.path(*localStore, step->drv->name, name))); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 443[3.1390]→[2.1892:1952](∅→∅),[3.188]→[3.1153:1270](∅→∅),[2.1952]→[3.1153:1270](∅→∅),[3.1153]→[3.1153:1270](∅→∅),[3.1270]→[3.44:44](∅→∅),[3.44]→[3.1535:1560](∅→∅),[3.1270]→[3.1535:1560](∅→∅),[3.6557]→[3.1535:1560](∅→∅),[3.6972]→[3.1535:1560](∅→∅),[3.6999]→[3.1535:1560](∅→∅),[3.7064]→[3.1535:1560](∅→∅),[3.1535]→[3.1535:1560](∅→∅)
for (auto & path : step->drv->outputPaths(*localStore))if (!txn.exec_params("select 1 from FailedPaths where path = $1", localStore->printStorePath(path)).empty())return true;for (auto & i : step->drv->outputsAndOptPaths(*localStore))if (i.second.second)if (!txn.exec_params("select 1 from FailedPaths where path = $1", localStore->printStorePath(*i.second.second)).empty())return true; - replacement in src/hydra-queue-runner/queue-monitor.cc at line 179[3.1276]→[2.2076:2159](∅→∅),[3.324]→[3.8047:8281](∅→∅),[3.1408]→[3.8047:8281](∅→∅),[2.2159]→[3.8047:8281](∅→∅),[3.1341]→[3.8047:8281](∅→∅),[3.8281]→[2.2160:2226](∅→∅),[3.1489]→[3.1634:1791](∅→∅),[2.2226]→[3.1634:1791](∅→∅),[3.7287]→[3.1634:1791](∅→∅),[3.7794]→[3.1634:1791](∅→∅),[3.8331]→[3.1634:1791](∅→∅),[3.1634]→[3.1634:1791](∅→∅)
for (auto & output : ex.step->drv->outputPaths(*localStore)) {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",localStore->printStorePath(output));if (!res[0][0].is_null()) {propagatedFrom = res[0][0].as<BuildID>();break;for (auto & i : ex.step->drv->outputsAndOptPaths(*localStore)) {if (i.second.second) {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",localStore->printStorePath(*i.second.second));if (!res[0][0].is_null()) {propagatedFrom = res[0][0].as<BuildID>();break;} - replacement in src/hydra-queue-runner/queue-monitor.cc at line 226
for (auto & path : drv.outputPaths(*localStore))addRoot(path);for (auto & i : drv.outputsAndOptPaths(*localStore))if (i.second.second)addRoot(*i.second.second); - edit in src/hydra-queue-runner/queue-monitor.cc at line 459
auto outputs = step->drv->outputPaths(*localStore); - replacement in src/hydra-queue-runner/queue-monitor.cc at line 461
if (!destStore->isValidPath(i.second.path(*localStore, step->drv->name))) {if (!destStore->isValidPath(*i.second.path(*localStore, step->drv->name, i.first))) { - replacement in src/hydra-queue-runner/queue-monitor.cc at line 472
auto path = i.second.path(*localStore, step->drv->name);if (/* localStore != destStore && */ localStore->isValidPath(path))auto path = i.second.path(*localStore, step->drv->name, i.first);if (/* localStore != destStore && */ localStore->isValidPath(*path)) - replacement in src/hydra-queue-runner/queue-monitor.cc at line 477
localStore->querySubstitutablePathInfos({{path, {}}}, infos);localStore->querySubstitutablePathInfos({{*path, {}}}, infos); - replacement in src/hydra-queue-runner/queue-monitor.cc at line 486
auto path = i.second.path(*localStore, step->drv->name);auto path = i.second.path(*localStore, step->drv->name, i.first); - replacement in src/hydra-queue-runner/queue-monitor.cc at line 491
if (localStore->isValidPath(path))if (localStore->isValidPath(*path)) - replacement in src/hydra-queue-runner/queue-monitor.cc at line 493
localStore->printStorePath(path),localStore->printStorePath(*path), - replacement in src/hydra-queue-runner/queue-monitor.cc at line 497
localStore->printStorePath(path),localStore->printStorePath(*path), - replacement in src/hydra-queue-runner/queue-monitor.cc at line 499
localStore->ensurePath(path);localStore->ensurePath(*path); - replacement in src/hydra-queue-runner/queue-monitor.cc at line 503
copyClosure(ref<Store>(localStore), destStore, {path});copyClosure(ref<Store>(localStore), destStore, {*path}); - replacement in src/hydra-queue-runner/queue-monitor.cc at line 510
createSubstitutionStep(txn, startTime, stopTime, build, drvPath, "out", path);createSubstitutionStep(txn, startTime, stopTime, build, drvPath, "out", *path); - replacement in src/hydra-queue-runner/queue-monitor.cc at line 516
localStore->printStorePath(path),localStore->printStorePath(*path), - replacement in src/hydra-queue-runner/queue-monitor.cc at line 622
for (auto & output : drv.outputPaths(*localStore)) {for (auto & [name, output] : drv.outputsAndOptPaths(*localStore)) { - replacement in src/hydra-queue-runner/queue-monitor.cc at line 627
localStore->printStorePath(output));localStore->printStorePath(*output.second));