| 7 Jun 2022 |
kenran_ | In reply to @jackdk:matrix.org But because the flake completely specifies its inputs, ISTM that you don't need the separate spec.json to declare which inputs you want in NIX_PATH or whatever Yeah, that sounds about right. I've never used spec.json; feels like hydraJobs make that obsolete for flake projects. | 08:13:16 |
jackdk | Yeah it looks like spec.json does everything flakes do, but worse. Consider https://github.com/qfpl/reflex-workshop/blob/master/spec.json : it says "go evaluate release.nix from input reflex-workshop, setting <nixpkgs> and <reflex-workshop> in NIX_PATH. The attrset that the evaluation returns defines the jobs to actually run. | 08:16:50 |
kenran_ | Ah yes. Just use the flake output type and enjoy :) | 08:17:27 |
kenran_ | Sadly the NixOS tests I've written fail in my Hydra instance and I don't know why. I'll wait and see if anyone answers in the NixOS channel first, then re-post here in full detail. In essence all my tests use a postgresql service which after some time leads to
machine # [ 336.433468] postgresql-pre-start[896]: Success. You can now start the database server using:
machine # [ 336.452698] postgresql-pre-start[896]: /nix/store/6cn4h4icjjvg9yqx8iy55hvmqbq0jj2j-postgresql-10.21/bin/pg_ctl -D /var/lib/postgresql/10.0 -l logfile start
machine # [ 337.181043] systemd[1]: postgresql.service: Failed with result 'timeout'.
| 08:19:20 |
kenran_ | Locally they're running just fine, so I'm at a loss. It's a flake project with everything pinned down and supposedly reproducible. | 08:19:46 |
Robert Hensing (roberth) | In reply to @roberthensing:matrix.org evaluation hasn't started for 13h; seems like something is wrong https://hydra.nixos.org/jobset/nixos/trunk-combined it came through ✅ | 13:49:28 |
| 8 Jun 2022 |
| dadada (they/them) changed their display name from dadada / Tim (they/er) to dadada. | 19:22:46 |
| 9 Jun 2022 |
| @v0id:nltrix.net left the room. | 23:04:16 |
| 10 Jun 2022 |
kenran_ | I'm trying to create a minimal example for my Hydra/PostgreSQL problem mentioned above now, mainly just using a postgresql_10 service and waiting for the unit to come up. This is what usually seems to fail on my Hydra, but not locally. | 10:31:10 |
kenran_ | Hum, of course the minimal example works as expected. The only thing I can even think of is the pin. | 10:58:25 |
kenran_ | But then it stresses me out that the same nix build runs fine locally. | 10:58:45 |
kenran_ | If anyone has any ideas as to what could lead to a NixOS test running locally but not on a Hydra instance (the last thing that comes to my mind would be performance differences), I'd be really happy. I'll put my example on github next week, hopefully a smarter person than me can see what's going on then. The gist of it is that I'm starting the postgres service, wait for it to be up, then change the user password. This works fine.
But then doing anything after, like machine.succeed("PGPASSWORD=foobar psql -d my_db -U postgres -c 'select * from information_schemas.tables' -o blub"), I get log output that doesn't even mention the "waiting" anymore and postgres just seems to fail:
machine # [ 315.423797] postgresql-pre-start[902]: WARNING: enabling "trust" authentication for local connections
machine # [ 315.428066] postgresql-pre-start[902]: You can change this by editing pg_hba.conf or using the option -A, or
machine # [ 315.433320] postgresql-pre-start[902]: --auth-local and --auth-host, the next time you run initdb.
machine # [ 315.443602] postgresql-pre-start[902]: Success. You can now start the database server using:
machine # [ 315.455771] postgresql-pre-start[902]: /nix/store/6cn4h4icjjvg9yqx8iy55hvmqbq0jj2j-postgresql-10.21/bin/pg_ctl -D /var/lib/postgresql/10.0 -l logfile start
machine # [ 315.910651] systemd[1]: postgresql.service: Failed with result 'timeout'.
machine # [ 315.931785] systemd[1]: Failed to start PostgreSQL Server.
machine # [ 315.949857] systemd[1]: postgresql.service: Consumed 52.412s CPU time, read 0B from disk, written 49.6M to disk, no IP traffic.
machine # [ 315.996944] systemd[1]: Reached target Multi-User System.
machine # [ 316.027544] systemd[1]: Startup finished in 1min 18.771s (kernel) + 3min 57.251s (userspace) = 5min 16.022s.
cleanup
kill machine (pid 8)
machine # qemu-kvm: terminating on signal 15 from pid 6 (/nix/store/vzqny68wq33dcg4hkdala51n5vqhpnwc-python3-3.9.12/bin/python3.9)
(finished: cleanup, in 0.06 seconds)
Traceback (most recent call last):
File "/nix/store/hxkw9fj8l3ipraz0q8gkfalv35a6vh4v-nixos-test-driver-1.1/bin/.nixos-test-driver-wrapped", line 9, in <module>
sys.exit(main())
File "/nix/store/hxkw9fj8l3ipraz0q8gkfalv35a6vh4v-nixos-test-driver-1.1/lib/python3.9/site-packages/test_driver/__init__.py", line 114, in main
driver.run_tests()
File "/nix/store/hxkw9fj8l3ipraz0q8gkfalv35a6vh4v-nixos-test-driver-1.1/lib/python3.9/site-packages/test_driver/driver.py", line 146, in run_tests
self.test_script()
File "/nix/store/hxkw9fj8l3ipraz0q8gkfalv35a6vh4v-nixos-test-driver-1.1/lib/python3.9/site-packages/test_driver/driver.py", line 142, in test_script
exec(self.tests, symbols, None)
File "<string>", line 1, in <module>
File "/nix/store/hxkw9fj8l3ipraz0q8gkfalv35a6vh4v-nixos-test-driver-1.1/lib/python3.9/site-packages/test_driver/machine.py", line 459, in wait_for_unit
retry(check_active)
File "/nix/store/hxkw9fj8l3ipraz0q8gkfalv35a6vh4v-nixos-test-driver-1.1/lib/python3.9/site-packages/test_driver/machine.py", line 126, in retry
if fn(False):
File "/nix/store/hxkw9fj8l3ipraz0q8gkfalv35a6vh4v-nixos-test-driver-1.1/lib/python3.9/site-packages/test_driver/machine.py", line 439, in check_active
raise Exception('unit "{}" reached state "{}"'.format(unit, state))
Exception: unit "postgresql" reached state "failed"
kill vlan (pid 7)
| 14:17:48 |
kenran_ | This works just fine locally though, and I'm at a loss. | 14:18:01 |
kenran_ | * This same test works just fine locally though, and I'm at a loss. | 14:19:27 |
| Joshua Gilman joined the room. | 19:21:26 |
| 11 Jun 2022 |
lewo | kenran_: is KVM enabled on your Hydra instance? | 06:10:33 |
das_j | does anyone here know what the altnr of a jobsetevalinput is? | 19:51:00 |
das_j | Got it btw. This is used as when you have an input with the same name multiple times and it's part of the primary key. It's set to 0 normally | 22:38:58 |
| 12 Jun 2022 |
| kenran_ set a profile picture. | 08:32:08 |
das_j | Perfect, something seems to set my umask to 18 in the evaluator… although there is no umask() call in the codebase :/ | 14:51:41 |
das_j | grahamc (he/him): Btw, Hydra won't survive y2038 because timestamp has type integer (4 bytes) | 14:56:01 |
@ulrikstrid:matrix.org | What is the correct way of building a nixosConfiguration? | 17:44:38 |
kenran_ | In reply to @ulrikstrid:matrix.org What is the correct way of building a nixosConfiguration? What do you mean exactly? A NixOS configuration with a hydra service? Your question sounds like it's about the flake output type. | 19:18:01 |
kenran_ | In reply to @lewo:matrix.org kenran_: is KVM enabled on your Hydra instance? It's in system-features, but that's probably not what you mean!? The machine is a VM in the cloud; I'll check tomorrow, but given that it takes 5 minutes to run this test I don't think it is :) | 19:19:24 |
@ulrikstrid:matrix.org | In reply to @kenran_:matrix.org What do you mean exactly? A NixOS configuration with a hydra service? Your question sounds like it's about the flake output type. I manage my computers with flakes and want to have my hydra build the configurations and ideally I would deploy from that | 19:33:14 |
lewo | kenran_: having kvm in system-features is not enough to ensure Nix have enough permissions on /dev/kvm (if nested KVM is provided by your cloud provider) | 19:36:15 |
kenran_ | In reply to @ulrikstrid:matrix.org I manage my computers with flakes and want to have my hydra build the configurations and ideally I would deploy from that Oh, that sounds very nice! I'm interested in knowing more now, too! Is the building part just adding a hydraJobs.my-host.${system} = self.nixosConfigurations.my-host? | 19:36:28 |
das_j | In reply to @lewo:matrix.org kenran_: having kvm in system-features is not enough to ensure Nix have enough permissions on /dev/kvm (if nested KVM is provided by your cloud provider) Adding kvm to the system features is already wrong. Nix autodetects kvm and adds the feature | 19:36:46 |
lewo | kenran_: and if KVM is not available, it can be pretty hard to get NixOS test working. | 19:37:08 |
das_j | In reply to @janne.hess:helsinki-systems.de Adding kvm to the system features is already wrong. Nix autodetects kvm and adds the feature https://github.com/NixOS/nix/blob/master/src/libstore/globals.cc#L128-L129 | 19:37:33 |