!zghijEASpYQWYFzriI:nixos.org

Hydra

389 Members
112 Servers

Load older messages


SenderMessageTime
18 Jan 2022
@grahamc:nixos.org@grahamc:nixos.org *

anyone seen errors like this one before?

possibly transient failure building ‘/nix/store/xxx-stage-1-init.sh.drv’ on ‘localhost’: dependency '/nix/store/xxx-extra-utils' of '/nix/store/xxx-stage-1-init.sh.drv' does not exist, and substitution is disabled

20:21:39
@grahamc:nixos.org@grahamc:nixos.orgshouldn't hydra 's queue runner be responsible for sending all the inputs?20:22:29
@grahamc:nixos.org@grahamc:nixos.orgoh no this is when I go ham on the queue runner isn't it20:33:45
@grahamc:nixos.org@grahamc:nixos.orgI hate this21:04:43
19 Jan 2022
@grahamc:nixos.org@grahamc:nixos.orgthis is interesting, the queue runner when creating the build step considers the derivation for the missing output but then doesn't do anything with it16:18:26
@grahamc:nixos.org@grahamc:nixos.org

what I've found is it is checking to see if the destStore (an S3BinaryCacheStoreImpl) has it as a valid path:

State::createStep (this=0x7fffffff7280, destStore=..., conn=..., build=std::shared_ptr<Build> (use count 5, weak count 1) = {...}, drvPath=..., referringBuild=std::shared_ptr<Build> (empty) = {...}, 
    referringStep=std::shared_ptr<Step> (use count 2, weak count 2) = {...}, finishedDrvs=std::set with 1 element = {...}, newSteps=std::set with 0 elements, newRunnable=std::set with 0 elements)
    at queue-monitor.cc:470
470	        if (!destStore->isValidPath(*i.second.path(*localStore, step->drv->name, i.first))) {

isValidPath checks the disk cache:

   428      if (diskCache) {
   429          auto res = diskCache->lookupNarInfo(getUri(), hashPart);
   430          if (res.first != NarInfoDiskCache::oUnknown) {

it doesn't know (oUnknown) and falls through to:

   439      bool valid = isValidPathUncached(storePath);
   440  
   441      if (diskCache && !valid)
   442          // FIXME: handle valid = true case.
   443          diskCache->upsertNarInfo(getUri(), hashPart, 0);
   444  
   445      return valid;

and it does exist which ends up returning valid (true) here, with that FIXME hint.

from there we're back in the queue monitor:

   470          if (!destStore->isValidPath(*i.second.path(*localStore, step->drv->name, i.first))) {
   471              valid = false;
   472              missing.insert_or_assign(i.first, i.second);
   473          }

except the path is valid on the remote end despite not being on the local machine, so it never gets put in to "missing", so it never enters this:

   475      /* Try to copy the missing paths from the local store or from
   476         substitutes. */
   477      if (!missing.empty()) {

at which point Hydra thinks it is ready to build a derivation where a dependent derivation's outputs are not available

21:15:42
@grahamc:nixos.org@grahamc:nixos.org but I don't understand why it does work, substituting from the cache, in many ways. 21:19:59
@grahamc:nixos.org@grahamc:nixos.org * but I don't understand why it does work, substituting from the cache, in many cases. 21:20:01
@grahamc:nixos.org@grahamc:nixos.orgif this rings any bells at all I'd be indebted 21:26:50
20 Jan 2022
@andi:kack.itandi- left the room.00:14:01
@vcunat:matrix.orgvcunat joined the room.18:54:02
@vcunat:matrix.orgvcunatThis is fishy. Hundreds of "queued jobs" but all have finished hours ago: https://hydra.nixos.org/eval/1739175#tabs-unfinished Fortunately, it didn't prevent the channel from advancing 😅19:00:54
21 Jan 2022
@grahamc:nixos.org@grahamc:nixos.orghttps://github.com/NixOS/hydra/pull/112600:53:14
@kenran_:matrix.orgkenran_ joined the room.05:15:02
@kenran_:matrix.orgkenran_ I'm trying to set up a Hydra, following https://nixos.wiki/wiki/Hydra. I could successfully create an admin user for myself with a plain text password, but whenever I try doing it via hash (following the instructions in hydra-create-user --help) it tells me that the user was updated, but I always get "bad username or password". Any idea what I can do to debug this? 05:18:33
@kenran_:matrix.orgkenran_ That is, I create the hash by entering a nix-shell -p libargon2, doing argon2 "$(LC_ALL=C tr -dc '[:alnum:]' < /dev/urandom | head -c16)" -id -t 3 -k 262144 -p 1 -l 16 -e, entering blub, pressing Enter (is that wrong?), then ^D, and specify the resulting hash as hydra-create-user myuser --full-name 'foo bar' --email-address 'foo@bar.com' --role admin --password-hash '$argon2id$v=19$m=262144,t=3,p=1$U3I1UGt6ekV4c09oeGZxTA$oQRySAPG6a6Wpao7wSQQ6w' 05:23:53
@kenran_:matrix.orgkenran_ I just tried using the exact example line from hydra-create-user --help, user alice with password foobar, and it doesn't work either, so I guess something else is not working as expected here. Or maybe I misconfigured something, but so far everything should be copied from the article. Guess I'll stick with the plain text password for now. 05:27:14
@kenran_:matrix.orgkenran_ * I just tried using the exact example line from hydra-create-user --help, user alice with password foobar, and it doesn't work either, so I guess something else is not working as expected here. Or maybe I misconfigured something, but so far everything should be copied from the article. Guess I'll stick with the plain text password for now and change it via the web interface. 06:22:41
@kenran_:matrix.orgkenran_ So far, I've set up the Hydra (on NixOS btw) and added the imperative and the declarative examples from the Wiki page, but nothing seems to be happening: localhost is supposedly Idle. How can I see "what it is doing"? 07:23:46
@kenran_:matrix.orgkenran_Ah, something has happened right now, the evaluations were probably just taking a long time (or the restart of my server actually changed something).07:27:42
@kenran_:matrix.orgkenran_But only the declarative example is working, the imperative one stays at 0%. That's not as important for me though.07:28:08
@kenran_:matrix.orgkenran_ Got it, the branch nixos-18.03 doesn't exist anymore! 07:41:47
@kenran_:matrix.orgkenran_(I updated the wiki accordingly :))08:48:31
@kenran_:matrix.orgkenran_ * (I updated the wiki accordingly)08:48:46
@kenran_:matrix.orgkenran_

But phew, I keep having new questions, sorry for all the text:

  • I noticed (after a couple of trivial builds) that /var/lib/hydra/scm is already at 14GB, (this is a small testing machine with only 20GB of disk space). Is there documentation about what goes where and how to clean it up?
  • Are these files maybe the nixpkgs variants that are pulled when building? If so, are they garbage-collected at some point?
08:59:58
@janne.hess:helsinki-systems.dedas_j
In reply to @kenran_:matrix.org

But phew, I keep having new questions, sorry for all the text:

  • I noticed (after a couple of trivial builds) that /var/lib/hydra/scm is already at 14GB, (this is a small testing machine with only 20GB of disk space). Is there documentation about what goes where and how to clean it up?
  • Are these files maybe the nixpkgs variants that are pulled when building? If so, are they garbage-collected at some point?
There is a button to clean the SCM cache in the admin menu. It should contain all SCM repos like git that are input of any evaluations
09:06:10
@janne.hess:helsinki-systems.dedas_jIt's git repos so you can probably clean them with git commands as the appropriate user but I haven't ever done this09:06:35
@kenran_:matrix.orgkenran_Ah thanks, I can't see that right now, as the disk ran full and thus I couldn't access the web interface anymore :D09:06:51
@janne.hess:helsinki-systems.dedas_jBut 14GB is strange… we have been using Hydra for a couple of years now and we only have 9GB09:07:34
@kenran_:matrix.orgkenran_But is it normal that this escalates that quickly w.r.t. disk usage? https://github.com/NixOS/hydra/issues/421 shows a value of 20GB for a much bigger thing.09:07:49

Show newer messages


Back to Room ListRoom Version: 6