!zghijEASpYQWYFzriI:nixos.org

Hydra

385 Members
110 Servers

Load older messages


SenderMessageTime
22 Jun 2021
@blaggacao:matrix.orgDavid Arnold (blaggacao)
nix already knows how to parrallelize when possible.
20:48:26
@blaggacao:matrix.orgDavid Arnold (blaggacao)Feel free to add / or reword to make it more concise: https://demo.hedgedoc.org/sfTFtgceQJqI2gPqIwXQ5Q#taskcluster-pha-nix-build-DAG20:49:48
@blaggacao:matrix.orgDavid Arnold (blaggacao) The point to bring about is: nix is task cluster in the build domain, and everything else is better handled by a proper state machine, not a simple DAG. 20:50:29
@tomberek:matrix.orgtomberekI’m not understanding where you intend state would be kept. Or where this state machine would run. (I’ve found it possible, I’m just not grokking specifically what you intend.)21:41:19
@blaggacao:matrix.orgDavid Arnold (blaggacao)I am a bit bisased, since I have somewhat knowledge of how zeebe works: it's a state machine that otherwise does event sourcing into a data lake. +-22:04:10
@blaggacao:matrix.orgDavid Arnold (blaggacao) It's messages all the way down, and they modify constitute the state. 22:05:07
@tomberek:matrix.orgtomberek I pulled a trick recently where I put state into Git (it was very slow moving state, human time-scales) and Hydra would pick it up and run a DAG of the changed transformations. Along with an auto-scaling group for builders, it made a data ingestion system with many nice qualities inherited from Nix. 22:24:45
@blaggacao:matrix.orgDavid Arnold (blaggacao) Iirc the state in zeebe is distributed among the brokers without central db for running workflow instances, once terminated they (or alternatively all events during execution) are persisted into the data lake. 22:26:58
@blaggacao:matrix.orgDavid Arnold (blaggacao)Brokers may have a local in-mempry db or something.22:27:17
@tomberek:matrix.orgtomberekSo events are considered independent?22:28:11
@blaggacao:matrix.orgDavid Arnold (blaggacao)But it's basically pure event sourcing between brokers, which is a handy byproduct of the message queue used (don't know which)22:28:19
@blaggacao:matrix.orgDavid Arnold (blaggacao)No, I guess events are considered unique (at most once, at least once semantics)22:29:00
@blaggacao:matrix.orgDavid Arnold (blaggacao)Not sure though.22:29:09
@blaggacao:matrix.orgDavid Arnold (blaggacao)

Zeebe:

  • apiserver + broker
  • message queue
  • elasticsearch (datalake)
22:30:23
@blaggacao:matrix.orgDavid Arnold (blaggacao)That's about it.22:30:34
@blaggacao:matrix.orgDavid Arnold (blaggacao)Ok the broker has fancy features such as distributed runtime state and the workflow engine 😀22:31:08
@blaggacao:matrix.orgDavid Arnold (blaggacao)Each bpmn action has roughly/conceptually two events/messages: JobStart + JobFinish22:33:29
@blaggacao:matrix.orgDavid Arnold (blaggacao) And workers need to understand those and return meaningful output (JobFinish message) 22:34:11
@blaggacao:matrix.orgDavid Arnold (blaggacao)It's actually pretty simple.22:36:05
@blaggacao:matrix.orgDavid Arnold (blaggacao)The biggest challange is packaging zeebe / OPA for nixpkgs.22:36:33
23 Jun 2021
@taneb:hacksrus.ukTanebHow do the "Previous Hydra evaluation" and "Previous Hydra buld" input types work?15:21:59
@amanda:camnet.siteAmanda (she/her) Did something chanage with hydra/nix recently that &scheme=http won't work for s3:// caches? I'm attempting to specifically bypass nginx to a minio instance on localhost to avoid upping the client file size limit, but I'm seeeing a lot of "SSL connection error"s 22:18:38
@amanda:camnet.siteAmanda (she/her) Specifically, lots of this: Jun 23 18:14:17 miranda hydra-queue-runner[455780]: AWS error '' (curlCode: 35, SSL connect error), will retry in X ms 22:20:04
@amanda:camnet.siteAmanda (she/her)

Oh. looks like a pqxx update broke hydra:

make[3]: Entering directory '/build/source/src/hydra-evaluator'
g++ -DHAVE_CONFIG_H -I. -I../..    -std=c++17 -I/nix/store/ll3ava4533mdgadiy6mxmrvi6cnnsbvp-nix-2.4pre20210623_323e545-dev/include/nix -I/nix/store/y4xvwgsrms14b2lmcnbwmfsz10svvzid-boehm-gc-8.0.4-dev/include -Wall -I ../libhydra -Wno-deprecated-declarations -g -O2 -std>
In file included from /nix/store/35li1apz6s7a3nhvi1vv9w6h96yjrrxx-libpqxx-7.5.2/include/pqxx/util.hxx:31,
                 from /nix/store/35li1apz6s7a3nhvi1vv9w6h96yjrrxx-libpqxx-7.5.2/include/pqxx/result.hxx:25,
                 from /nix/store/35li1apz6s7a3nhvi1vv9w6h96yjrrxx-libpqxx-7.5.2/include/pqxx/binarystring.hxx:21,
                 from /nix/store/35li1apz6s7a3nhvi1vv9w6h96yjrrxx-libpqxx-7.5.2/include/pqxx/binarystring:4,
                 from /nix/store/35li1apz6s7a3nhvi1vv9w6h96yjrrxx-libpqxx-7.5.2/include/pqxx/pqxx:3,
                 from ../libhydra/db.hh:3,
                 from hydra-evaluator.cc:1:
../../version:1:1: error: expected unqualified-id before numeric constant
    1 | 0.1
      | ^~~
In file included from /nix/store/35li1apz6s7a3nhvi1vv9w6h96yjrrxx-libpqxx-7.5.2/include/pqxx/util.hxx:37,
                 from /nix/store/35li1apz6s7a3nhvi1vv9w6h96yjrrxx-libpqxx-7.5.2/include/pqxx/result.hxx:25,
                 from /nix/store/35li1apz6s7a3nhvi1vv9w6h96yjrrxx-libpqxx-7.5.2/include/pqxx/binarystring.hxx:21,
                 from /nix/store/35li1apz6s7a3nhvi1vv9w6h96yjrrxx-libpqxx-7.5.2/include/pqxx/binarystring:4,
                 from /nix/store/35li1apz6s7a3nhvi1vv9w6h96yjrrxx-libpqxx-7.5.2/include/pqxx/pqxx:3,
                 from ../libhydra/db.hh:3,
                 from hydra-evaluator.cc:1:
/nix/store/35li1apz6s7a3nhvi1vv9w6h96yjrrxx-libpqxx-7.5.2/include/pqxx/util.hxx: In function 'void pqxx::check_version()':
/nix/store/35li1apz6s7a3nhvi1vv9w6h96yjrrxx-libpqxx-7.5.2/include/pqxx/util.hxx:183:42: error: 'check_pqxx_version_PQXX_VERSION_MAJOR_PQXX_VERSION_MINOR' is not a member of 'pqxx::internal'
  183 |   static auto const version_ok{internal::PQXX_VERSION_CHECK()};
      |                                          ^~~~~~~~~~~~~~~~~~
hydra-evaluator.cc: In member function 'bool Evaluator::shouldEvaluate(Evaluator::Jobset&)':
hydra-evaluator.cc:236:43: error: 'using work = class pqxx::transaction<>' {aka 'class pqxx::transaction<>'} has no member named 'parameterized'
  236 |                 auto evaluation_res = txn.parameterized
      |                                           ^~~~~~~~~~~~~
hydra-evaluator.cc:250:62: error: expected primary-expression before 'int'
  250 |                 auto evaluation_id = evaluation_res[0][0].as<int>();
      |                                                              ^~~
hydra-evaluator.cc:252:49: error: 'using work = class pqxx::transaction<>' {aka 'class pqxx::transaction<>'} has no member named 'parameterized'
  252 |                 auto unfinished_build_res = txn.parameterized
      |                                                 ^~~~~~~~~~~~~
make[3]: *** [Makefile:440: hydra_evaluator-hydra-evaluator.o] Error 1
make[3]: Leaving directory '/build/source/src/hydra-evaluator'
make[2]: *** [Makefile:360: all-recursive] Error 1
make[2]: Leaving directory '/build/source/src'
make[1]: *** [Makefile:416: all-recursive] Error 1
make[1]: Leaving directory '/build/source'
make: *** [Makefile:346: all] Error 2

22:41:26
24 Jun 2021
@taneb:hacksrus.ukTanebYeah, I noticed that the other day. Not sure how to fix it though :(07:57:34
@vertebralsilence:matrix.orgvertebralsilence joined the room.13:21:19
25 Jun 2021
@andreas.schraegle:helsinki-systems.deajs124Does hydra have a way to pass build options, e.g. something like a sandbox exception to a specific job(set)?13:47:15
26 Jun 2021
@jez:petrichor.meJez (he/him) joined the room.08:44:39
@wucke13:matrix.orgwucke13 joined the room.08:46:07
@wucke13:matrix.orgwucke13 Is it possible to have hydra build the nixosConfigurations in a flake? 08:46:43

Show newer messages


Back to Room ListRoom Version: 6