Update to reflect BinaryCacheStore changes
[?]
Oct 7, 2016, 6:23 PM
IKJBYIGY3JABFXD2KOAQNA52ULE6VR4PBFKHWAHHBITXX5KC76MACDependencies
- [2]
BYVRA54QTemporarily disable machines on any exception, not just connection failures - [3]
YTAYNN7VQueue monitor: Bail out earlier if a step has failed previously - [4]
HB7JA5WVhydra-module: fix useSubstitutes configuration option - [5]
PDI5YPBYUse store-api for binary cache instantiation - [6]
EYR3EW6JKeep stats for the Hydra auto scaler - [7]
7XOH2DGHhydra-module.nix: Give types to options - [8]
H7SZRHUBUse nix::willBuildLocally() - [9]
36YF4WOZRemove unnecessary call to hydra-queue-runner --unlock - [10]
24BMQDZAStart of single-process hydra-queue-runner - [11]
HJOEIMLRRefactor - [12]
SODOV2CMAutomatically reload $NIX_REMOTE_SYSTEMS when it changes - [13]
EOO4EFWDUse a single BinaryCacheStore for all threads - [14]
ACBS7C6Qhydra-queue-runner: Detect changes to the scheduling shares - [15]
BG6PEOB2Make the output size limit configurable - [16]
VQISTKOPhydra-queue-runner: Use substitutes - [17]
B2L4T3X6Sync with Nix - [18]
GJV2J5HXPool local store connections - [19]
73YR46NJhydra-queue-runner: Write directly to a binary cache - [20]
TTBLPQAJKeep track of wait time per system type - [21]
A4A5KO5QAdd error/warnings for deprecated store specification - [22]
MHVIT4JYSplit hydra-queue-runner.cc more - [23]
ZYEFL36QPorted/merged properties from the TUD configuration's hydra-module - [24]
TTZ26BJQUnify Hydra's NixOS module with the one used for hydra.nixos.org - [25]
5AIYUMTBBasic remote building - [26]
OG3Z3QGCNamespace cleanup - [27]
RND7XFNHgetQueuedBuilds(): Periodically stop to handle priority bumps - [28]
K5G5GZY7Guard against concurrent invocations of hydra-queue-runner - [29]
V2UCCYN3hydra-queue-runner: Get store mode configuration from hydra.conf - [30]
BRAESISHWarn if PostgreSQL appears stalled - [31]
4HDPYRJ6Update the hydra-queue-runner unit - [32]
2ANV36PBHackery - [33]
WE5Q2NVIAllow build to be bumped to the front of the queue via the web interface - [34]
DKJFD6JNProcess Nix API changes - [35]
SOB276BAKeep some statistics for the binary cache stores - [36]
G7LZJ4VAhydra-module.nix: add 'useSubstitutes' option to control use of binary caches - [*]
D3MDJONY - [*]
KKHVM4KAMove GC roots to /nix/var/nix/gcroots/hydra - [*]
4J33F22Thydra-module.nix: Make it possible to add extra config lines
Change contents
- edit in hydra-module.nix at line 233[39.232][40.373]
use-substitutes ${if cfg.useSubstitutes then "1" else "0"} - replacement in hydra-module.nix at line 329
{ ExecStart = "@${cfg.package}/bin/hydra-queue-runner hydra-queue-runner -v --option build-use-substitutes ${if cfg.useSubstitutes then "true" else "false"}";{ ExecStart = "@${cfg.package}/bin/hydra-queue-runner hydra-queue-runner -v"; - replacement in src/hydra-queue-runner/build-remote.cc at line 205
destStore->buildPaths(basicDrv.inputSrcs);copyClosure(ref<Store>(localStore), destStore, basicDrv.inputSrcs); - edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 71[6.566]→[6.1542:1546](∅→∅),[6.979]→[6.1542:1546](∅→∅),[6.7892]→[6.1542:1546](∅→∅),[6.1546]→[6.755:789](∅→∅),[6.659]→[6.1580:1582](∅→∅),[6.789]→[6.1580:1582](∅→∅),[6.1580]→[6.1580:1582](∅→∅),[6.1582]→[6.790:826](∅→∅)
}ref<Store> State::getLocalStore(){return ref<Store>(_localStore); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 794
_localStore = openStore();localStore = openStore(); - replacement in src/hydra-queue-runner/hydra-queue-runner.cc at line 797
_destStore = _localStore;_destStore = localStore; - edit in src/hydra-queue-runner/hydra-queue-runner.cc at line 801
auto isTrue = [](const std::string & s) {return s == "1" || s == "true";};useSubstitutes = isTrue(hydraConfig["use-substitutes"]); - edit in src/hydra-queue-runner/queue-monitor.cc at line 32
auto localStore = getLocalStore(); - replacement in src/hydra-queue-runner/queue-monitor.cc at line 37
bool done = getQueuedBuilds(*conn, localStore, destStore, lastBuildId);bool done = getQueuedBuilds(*conn, destStore, lastBuildId); - replacement in src/hydra-queue-runner/queue-monitor.cc at line 71
bool State::getQueuedBuilds(Connection & conn, ref<Store> localStore,bool State::getQueuedBuilds(Connection & conn, - edit in src/hydra-queue-runner/queue-monitor.cc at line 417
PathSet missingPaths; - replacement in src/hydra-queue-runner/queue-monitor.cc at line 421
missingPaths.insert(i.second.path);}/* Try to copy the missing paths from the local store or fromsubstitutes. */if (!missing.empty()) {size_t avail = 0;for (auto & i : missing) {if (/* localStore != destStore && */ localStore->isValidPath(i.second.path))avail++;else if (useSubstitutes) {SubstitutablePathInfos infos;localStore->querySubstitutablePathInfos({i.second.path}, infos);if (infos.size() == 1)avail++;} - replacement in src/hydra-queue-runner/queue-monitor.cc at line 439[6.1771]→[6.1771:2120](∅→∅),[6.2120]→[6.12926:13004](∅→∅),[6.13004]→[6.2185:2236](∅→∅),[6.2185]→[6.2185:2236](∅→∅)
/* Try to substitute the missing paths. Note: can't use the moreefficient querySubstitutablePaths() here because upstream Hydraservers don't allow it (they have "WantMassQuery: 0"). */assert(missing.size() == missingPaths.size());if (!missing.empty() && settings.useSubstitutes) {SubstitutablePathInfos infos;destStore->querySubstitutablePathInfos(missingPaths, infos); // FIXMEif (infos.size() == missingPaths.size()) {if (missing.size() == avail) { - replacement in src/hydra-queue-runner/queue-monitor.cc at line 443
printMsg(lvlInfo, format("substituting output ‘%1%’ of ‘%2%’") % i.second.path % drvPath);time_t startTime = time(0);if (localStore->isValidPath(i.second.path))printInfo("copying output ‘%1%’ of ‘%2%’ from local store", i.second.path, drvPath);else {printInfo("substituting output ‘%1%’ of ‘%2%’", i.second.path, drvPath);localStore->ensurePath(i.second.path);// FIXME: should copy directly from substituter to destStore.}copyClosure(ref<Store>(localStore), destStore, {i.second.path}); - edit in src/hydra-queue-runner/queue-monitor.cc at line 455
time_t startTime = time(0);destStore->ensurePath(i.second.path); - edit in src/hydra-queue-runner/queue-monitor.cc at line 465
printError("while copying/substituting output ‘%s’ of ‘%s’: %s", i.second.path, drvPath, e.what()); - edit in src/hydra-queue-runner/state.hh at line 259
bool useSubstitutes = false; - replacement in src/hydra-queue-runner/state.hh at line 379
std::shared_ptr<nix::Store> _localStore;std::shared_ptr<nix::Store> localStore; - edit in src/hydra-queue-runner/state.hh at line 405[6.946]→[6.946:947](∅→∅),[6.947]→[6.13176:13272](∅→∅),[6.13176]→[6.13176:13272](∅→∅),[6.13272]→[6.2332:2374](∅→∅)
/* Return a store object that can access derivations produced byhydra-evaluator. */nix::ref<nix::Store> getLocalStore(); - replacement in src/hydra-queue-runner/state.hh at line 437
bool getQueuedBuilds(Connection & conn, nix::ref<nix::Store> localStore,bool getQueuedBuilds(Connection & conn,