!zghijEASpYQWYFzriI:nixos.org

Hydra

398 Members
114 Servers

Load older messages


SenderMessageTime
11 May 2026
@Ericson2314:matrix.orgJohn Ericsonwe can rip out the toml formatting if you don't like that, but that is the most trivial bikeshed thing19:58:53
@Ericson2314:matrix.orgJohn Ericsonnot load-berring for the overall health of the project19:59:06
@frooastside:wolkeneis.devFrooastside

Hello, I am not sure if this is the right place to ask, but I set up a hydra instance on my server and it all works so far but I am a bit confused by the architecture. I used the newer hydra-queue-builder and runner that came from helsinki-systems and when garbage collection ran on the builder, the next time it builds something, it tries to build everything starting from bootsrap stage 1. I enabled substitutions and the hydra-queue-runner says something like this:

hydra-queue-runner[84836]: 2026-05-11T19:17:16.161281Z  INFO queue_monitor_loop:get_queued_builds:process_new_builds:create_build:create_step:create_step: hydra_queue_runner::state: create_step: llw11xba2z4kfiyka62yhfjc75fys75x-bash-5.3p3.drv already finished (outputs in store), skipping build_id=1 build_id=1 drv_path=a97x63dkns7qsza17rbpgkmn6k9f65sf-rp4-image-hydra.drv build_id=1 build_id=1 drv_path=a97x63dkns7qsza17rbpgkmn6k9f65sf-rp4-image-hydra.drv build_id=1 drv_path=llw11xba2z4kfiyka62yhfjc75fys75x-bash-5.3p3.drv

so it already is in the s3 cache (it got build by the builder earlier) and the queue runner knows that. the queue-builder has the cache enabled as a subsituter but doesnt use it, is this intended?

20:01:22
@Ericson2314:matrix.orgJohn Ericson Frooastside: this is the right spot 20:02:49
@Ericson2314:matrix.orgJohn Ericsondid you enabled substitution on the builder too?20:02:55
@Ericson2314:matrix.orgJohn Ericsonthis seems not unlike the the issues that hydra.nixos.org was facing frankly20:03:12
@Ericson2314:matrix.orgJohn Ericsonthe thing I am working on right now (but it is a massive refactor) is making the builder not get dependent drvs so it that it has to subsitute or fail, and rebuilding things is not possible20:03:44
@Ericson2314:matrix.orgJohn Ericsonthat also cuts down on traffic between the queue ruunner and the builder20:03:54
@Ericson2314:matrix.orgJohn Ericsonthe current thing is how really old remote building worked20:04:09
@Ericson2314:matrix.orgJohn Ericsonthe thing I am going to is how hydra workedf or the last decade or so20:05:28
@frooastside:wolkeneis.devFrooastside I was not sure which setting is actually required because it didnt work after just enabling services.hydra-queue-builder-dev.useSubstitutes = true; (on the builder) so I also set nix.settings.builders-use-substitutes = true (I am not sure where i found that) and this is of course also set nix.settings.substituters = ["https://cache.nixos.org" "https://cache.MY CACHE"] 20:07:01
@Ericson2314:matrix.orgJohn Ericsonyeah taht sounds like it should work20:08:56
@Ericson2314:matrix.orgJohn Ericsonit is just hard to debug right now I am afraid with the dependency drvs being disclosed to the builder20:09:15
@Ericson2314:matrix.orgJohn Ericsonyou could try to check nix logs and figure out what it is doing what it is doing 20:09:28
@Ericson2314:matrix.orgJohn Ericsonbut that is hard20:09:31
@Ericson2314:matrix.orgJohn Ericson(the decision to build the stuff is nix's)20:10:28
@frooastside:wolkeneis.devFrooastside

This is the process running right now

hydra-q+   84985  0.0  0.2 595328 34872 ?        Sl   21:17   0:00 nix --extra-experimental-features nix-command build --json --no-pretty --print-build-logs --log-format raw-with-logs --no-link --max-silent-time 7200 --timeout 36000 --option max-build-log-size 67108864 --option fallback true --option substitute false --option builders  /nix/store/bx33y6dvsb44avnjah0hsh25hj0axa0f-users-groups.json.drv^*

So it picked the first drv that is not in the cache and tries to build it but --option substitute false is set

20:15:15
@frooastside:wolkeneis.devFrooastsideThats whats confusing me, how is it supposed to work? When the builder is missing dependencies, should nix get them because substitutions should be on, should the queue-builder get them from the cache or should the queue-runner send them to the builder?20:21:45
@Ericson2314:matrix.orgJohn Ericsoninteresting, I am not sure where that is coming from20:34:42
@Ericson2314:matrix.orgJohn Ericsonoh nevermind I do see it20:35:24
@Ericson2314:matrix.orgJohn Ericson that is in subprojects/crates/nix-utils/src/realise.rs 20:37:02
@Ericson2314:matrix.orgJohn Ericson git log missed it becasue it was there since the initial commit (?) 20:37:17
@Ericson2314:matrix.orgJohn Ericsonoh because I was git loging the specific file20:39:10
@Ericson2314:matrix.orgJohn Ericson Frooastside: the instent is that the new builder and new queue runner will cooporate to get the inputs in place separately 20:40:09
@Ericson2314:matrix.orgJohn Ericsonso nix shouldn't need to download anything20:40:16
@Ericson2314:matrix.orgJohn Ericsonbut clearly that is not working right yet20:40:20
@frooastside:wolkeneis.devFrooastsideOk, thank you20:41:05
12 May 2026
@numinit:matrix.orgMorgan (@numinit)FYI https://nixos.org/hydra/manual/ seems broken due to CORS rules03:51:51
@numinit:matrix.orgMorgan (@numinit)Any sense where they're coming from? Took a quick look in https://github.com/NixOS/infra/blob/main/build/hydra-proxy.nix to fix it but didn't see anything03:53:31
@frooastside:wolkeneis.devFrooastsideI tried getting the old queue-runner working but i face a weird issue where it just gets stuck on "sending inputs..." it tries to copy things from the s3 store but never finishes im not even sure whats the problem there. the only option is to manually kill the nix-daemon processes, systemctl restart nix-daemon doesnt touch the stuck processes. after doing that i can manually copy the nix store paths though im not sure if it works manually because its only one at a time or something else09:10:28

Show newer messages


Back to Room ListRoom Version: 6