!VRULIdgoKmKPzJZzjj:nixos.org

Nix Hackers

902 Members
For people hacking on the Nix package manager itself189 Servers

Load older messages


SenderMessageTime
13 Aug 2024
@kjeremy:matrix.orgkjeremy Are there any ideas for reducing evaluation (or flake checks?) memory overhead? I'm consistently OOMing in my flake on a nix flake check. 16:56:45
@jul1u5:matrix.orgjul1u5 left the room.21:55:55
14 Aug 2024
@jade_:matrix.orgjade_
In reply to @kjeremy:matrix.org
Are there any ideas for reducing evaluation (or flake checks?) memory overhead? I'm consistently OOMing in my flake on a nix flake check.

you could reduce memory usage or make the gc work better in principle but you have a deeper problem that the thunk structures in nixpkgs essentially are, by their very nature, unfreeable because they will always be accessible as long as pkgs is

your actual solution here is probably to use nix-eval-jobs and eat the fact you restart evaluation a couple times to re-determine what set of thunks are actually hot. that's what Hydra does, effectively. (and no you can't just throw out not-recently-touched thunks and recompute them, evaluation is side effectful in allocation ordering that is both detectable and relied upon by code in nixpkgs, horryingly)

02:43:57
@jade_:matrix.orgjade_
In reply to @kjeremy:matrix.org
Are there any ideas for reducing evaluation (or flake checks?) memory overhead? I'm consistently OOMing in my flake on a nix flake check.
*

you could reduce memory usage or make the gc work better in principle but you have a deeper problem that the thunk structures in nixpkgs essentially are, by their very nature, unfreeable because they will always be accessible as long as pkgs is

your actual solution here is probably to use nix-eval-jobs and eat the fact you restart evaluation a couple times to re-determine what set of thunks are actually hot. that's what Hydra does, effectively. (and no you can't just throw out not-recently-touched thunks and recompute them without tossing the entire evaluation, evaluation is side effectful in allocation ordering that is both detectable and relied upon by code in nixpkgs, horryingly)

02:44:25
@quapka4:matrix.orgquapka4 joined the room.10:52:05
@quapka4:matrix.orgquapka4

Hi, I've been asked to report I difference in hash calculation when using nix eval --raw for Nix 2.18.5 and 2.32.2. I am running NixOS 24.05 with Nix 2.18.5. I have tried Nix 2.32.2 using:

nix-shell -p nixVersions.latest -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/05bbf675397d5366259409139039af8077d695ce.tar.gz
``` from Lazamar's website.
For my Flake I observe this difference:

❯ nix --version
nix (Nix) 2.18.5
❯ nix eval --raw
/nix/store/22xdp8sxgn2ph81fl2azrvjzvdv1w7d3-<pkg>-0.3.3
❯ nix eval --raw '.?submodules=1'
/nix/store/r5fjiccnkk3frrlaj0g5w0z1wabiv4n0-<pkg>-0.3.3

❯ nix --version
nix (Nix) 2.23.2
❯ nix eval --raw
/nix/store/swb1a3yz3qhmsml1pjbwlpfx7dsjcbf6-<pkg>-0.3.3
❯ nix eval --raw '.?submodules=0'
/nix/store/swb1a3yz3qhmsml1pjbwlpfx7dsjcbf6-<pkg>-0.3.3
❯ nix eval --raw '.?submodules=1'
/nix/store/swb1a3yz3qhmsml1pjbwlpfx7dsjcbf6-<pkg>-0.3.3

10:53:58
@quapka4:matrix.orgquapka4 *

Hi, I've been asked to report I difference in hash calculation when using nix eval --raw for Nix 2.18.5 and 2.32.2. I am running NixOS 24.05 with Nix 2.18.5. I have tried Nix 2.32.2 using:

nix-shell -p nixVersions.latest -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/05bbf675397d5366259409139039af8077d695ce.tar.gz
``` from Lazamar's website.
For my Flake I observe this difference:

❯ nix --version
nix (Nix) 2.18.5
❯ nix eval --raw
/nix/store/22xdp8sxgn2ph81fl2azrvjzvdv1w7d3-<pkg>-0.3.3

❯ nix eval --raw '.?submodules=1'
/nix/store/r5fjiccnkk3frrlaj0g5w0z1wabiv4n0-<pkg>-0.3.3

❯ nix --version
nix (Nix) 2.23.2
❯ nix eval --raw
/nix/store/swb1a3yz3qhmsml1pjbwlpfx7dsjcbf6-<pkg>-0.3.3
❯ nix eval --raw '.?submodules=0'
/nix/store/swb1a3yz3qhmsml1pjbwlpfx7dsjcbf6-<pkg>-0.3.3
❯ nix eval --raw '.?submodules=1'
/nix/store/swb1a3yz3qhmsml1pjbwlpfx7dsjcbf6-<pkg>-0.3.3

10:54:15
@quapka4:matrix.orgquapka4 *

Hi, I've been asked to report I difference in hash calculation when using nix eval --raw for Nix 2.18.5 and 2.32.2. I am running NixOS 24.05 with Nix 2.18.5. I have tried Nix 2.32.2 using:

nix-shell -p nixVersions.latest -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/05bbf675397d5366259409139039af8077d695ce.tar.gz

from Lazamar's website.
For my Flake I observe this difference:

❯ nix --version
nix (Nix) 2.18.5
❯ nix eval --raw
/nix/store/22xdp8sxgn2ph81fl2azrvjzvdv1w7d3-\<pkg>-0.3.3

❯ nix eval --raw '.?submodules=1'
/nix/store/r5fjiccnkk3frrlaj0g5w0z1wabiv4n0-\<pkg>-0.3.3

❯ nix --version
nix (Nix) 2.23.2
❯ nix eval --raw
/nix/store/swb1a3yz3qhmsml1pjbwlpfx7dsjcbf6-\<pkg>-0.3.3
❯ nix eval --raw '.?submodules=0'
/nix/store/swb1a3yz3qhmsml1pjbwlpfx7dsjcbf6-\<pkg>-0.3.3
❯ nix eval --raw '.?submodules=1'
/nix/store/swb1a3yz3qhmsml1pjbwlpfx7dsjcbf6-\<pkg>-0.3.3
10:54:36
@quapka4:matrix.orgquapka4 *

Hi, I've been asked to report I difference in hash calculation when using nix eval --raw for Nix 2.18.5 and 2.32.2. I am running NixOS 24.05 with Nix 2.18.5. I have tried Nix 2.32.2 using:

nix-shell -p nixVersions.latest -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/05bbf675397d5366259409139039af8077d695ce.tar.gz

from Lazamar's website. For my Flake I observe this difference:

❯ nix --version
nix (Nix) 2.18.5
❯ nix eval --raw
/nix/store/22xdp8sxgn2ph81fl2azrvjzvdv1w7d3-\<pkg>-0.3.3

❯ nix eval --raw '.?submodules=1'
/nix/store/r5fjiccnkk3frrlaj0g5w0z1wabiv4n0-\<pkg>-0.3.3

❯ nix --version
nix (Nix) 2.23.2
❯ nix eval --raw
/nix/store/swb1a3yz3qhmsml1pjbwlpfx7dsjcbf6-\<pkg>-0.3.3
❯ nix eval --raw '.?submodules=0'
/nix/store/swb1a3yz3qhmsml1pjbwlpfx7dsjcbf6-\<pkg>-0.3.3
❯ nix eval --raw '.?submodules=1'
/nix/store/swb1a3yz3qhmsml1pjbwlpfx7dsjcbf6-\<pkg>-0.3.3
10:54:52
@quapka4:matrix.orgquapka4 *

Hi, I've been asked to report I difference in hash calculation when using nix eval --raw for Nix 2.18.5 and 2.32.2. I am running NixOS 24.05 with Nix 2.18.5. I have tried Nix 2.32.2 using:

nix-shell -p nixVersions.latest -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/05bbf675397d5366259409139039af8077d695ce.tar.gz

from Lazamar's website. For my Flake I observe this difference:

❯ nix --version
nix (Nix) 2.18.5
❯ nix eval --raw
/nix/store/22xdp8sxgn2ph81fl2azrvjzvdv1w7d3-\<pkg>-0.3.3
❯ nix eval --raw '.?submodules=1'
/nix/store/r5fjiccnkk3frrlaj0g5w0z1wabiv4n0-\<pkg>-0.3.3

❯ nix --version
nix (Nix) 2.23.2
❯ nix eval --raw
/nix/store/swb1a3yz3qhmsml1pjbwlpfx7dsjcbf6-\<pkg>-0.3.3
❯ nix eval --raw '.?submodules=0'
/nix/store/swb1a3yz3qhmsml1pjbwlpfx7dsjcbf6-\<pkg>-0.3.3
❯ nix eval --raw '.?submodules=1'
/nix/store/swb1a3yz3qhmsml1pjbwlpfx7dsjcbf6-\<pkg>-0.3.3
10:55:03
@quapka4:matrix.orgquapka4 I can give you the Flake.{nix, lock} if you wish. 10:55:18
@fudgemaster:matrix.orgFrank Geusch changed their display name from Master Fudge to Frank Geusch.13:25:56
@roberthensing:matrix.orgRobert Hensing (roberth) quapka4: we've changed git fetching to bite the bullet and solve its reproducibility problems in 2.19. I gather your repo is private. Could you add #outPath to your flakerefs and compare the store path contents produced by the git fetcher? 13:42:39
@roberthensing:matrix.orgRobert Hensing (roberth) * quapka4: we've changed git fetching to bite the bullet and solve its reproducibility problems (since 2.19). I gather your repo is private. Could you add #outPath to your flakerefs and compare the store path contents produced by the git fetcher? 13:43:01
@quapka4:matrix.orgquapka4
In reply to @roberthensing:matrix.org
quapka4: we've changed git fetching to bite the bullet and solve its reproducibility problems (since 2.19). I gather your repo is private. Could you add #outPath to your flakerefs and compare the store path contents produced by the git fetcher?
Nah, it's github.com/quapka/ectester.git, in the build-with-nix branch.
13:44:04
@quapka4:matrix.orgquapka4
In reply to @roberthensing:matrix.org
quapka4: we've changed git fetching to bite the bullet and solve its reproducibility problems (since 2.19). I gather your repo is private. Could you add #outPath to your flakerefs and compare the store path contents produced by the git fetcher?
* Nah, it's https;//github.com/quapka/ectester.git, in the build-with-nix branch.
13:44:13
@quapka4:matrix.orgquapka4 * Nah, it's https://github.com/quapka/ectester.git, in the build-with-nix branch. 13:44:20
@quapka4:matrix.orgquapka4
In reply to @roberthensing:matrix.org
quapka4: we've changed git fetching to bite the bullet and solve its reproducibility problems (since 2.19). I gather your repo is private. Could you add #outPath to your flakerefs and compare the store path contents produced by the git fetcher?
Sorry, what exactly do you mean with adding #outPath to flakerefs?
13:49:39
@quapka4:matrix.orgquapka4You mean build particular output and check what paths it corresponds to in the store? 🤔13:50:24
@kjeremy:matrix.orgkjeremy
In reply to @jade_:matrix.org

you could reduce memory usage or make the gc work better in principle but you have a deeper problem that the thunk structures in nixpkgs essentially are, by their very nature, unfreeable because they will always be accessible as long as pkgs is

your actual solution here is probably to use nix-eval-jobs and eat the fact you restart evaluation a couple times to re-determine what set of thunks are actually hot. that's what Hydra does, effectively. (and no you can't just throw out not-recently-touched thunks and recompute them without tossing the entire evaluation, evaluation is side effectful in allocation ordering that is both detectable and relied upon by code in nixpkgs, horryingly)

Is there a way to evaluate the entire flake with nix-eval-jobs?
14:36:49
@matthewcroughan:defenestrate.itmatthewcroughan Las: I mean previously it was printed once for a nix build but now it is printed over 30 times, for example 15:27:33
@Las:matrix.orgLas
In reply to @matthewcroughan:defenestrate.it
Las: I mean previously it was printed once for a nix build but now it is printed over 30 times, for example
I don’t think this is my fault. The code has had many changes recently though, so you could probably check recent commits on that file.
15:28:18
@roberthensing:matrix.orgRobert Hensing (roberth)
In reply to @quapka4:matrix.org
You mean build particular output and check what paths it corresponds to in the store? 🤔
Check whether the change comes from the fetching, and if so figure out what is the difference. If that's what's happened, it's the easiest way to tell the difference. Otherwise you could nix-diff the .drv files to see what changed
16:30:32
@matthewcroughan:defenestrate.itmatthewcroughan

Getting a lot more segfaults on Nix 2.24.1:

[427950.394360] nix[2944108]: segfault at b ip 00007fa37f4e7eef sp 00007ffc0d3f3420 error 4 in libgc.so.1.5.3[7fa37f4d1000+1e000] likely on CPU 1 (core 1, socket 0)
[427950.394374] Code: 8d 3d 35 22 01 00 48 8d 0c 49 48 c1 e1 04 48 8b 84 de d8 15 00 00 48 8b 0c 0f 48 8d 0c c1 4c 8b 21 4d 85 e4 0f 84 cb 00 00 00 <49> 8b 3c 24 48 89 39 85 ed 75 26 48 c1 e0 04 48 01 46 40 85 d2 75
[428102.596958] nix[2944942]: segfault at b ip 00007f28e5fbeeef sp 00007ffd714db9a0 error 4 in libgc.so.1.5.3[7f28e5fa8000+1e000] likely on CPU 6 (core 2, socket 0)
[428102.596976] Code: 8d 3d 35 22 01 00 48 8d 0c 49 48 c1 e1 04 48 8b 84 de d8 15 00 00 48 8b 0c 0f 48 8d 0c c1 4c 8b 21 4d 85 e4 0f 84 cb 00 00 00 <49> 8b 3c 24 48 89 39 85 ed 75 26 48 c1 e0 04 48 01 46 40 85 d2 75
[428442.052601] nix[2969540]: segfault at b ip 00007f13977beeef sp 00007ffe40fc2850 error 4 in libgc.so.1.5.3[7f13977a8000+1e000] likely on CPU 1 (core 1, socket 0)
[428442.052613] Code: 8d 3d 35 22 01 00 48 8d 0c 49 48 c1 e1 04 48 8b 84 de d8 15 00 00 48 8b 0c 0f 48 8d 0c c1 4c 8b 21 4d 85 e4 0f 84 cb 00 00 00 <49> 8b 3c 24 48 89 39 85 ed 75 26 48 c1 e0 04 48 01 46 40 85 d2 75
[428868.656235] nix[3006565]: segfault at b ip 00007f80bd39aeef sp 00007ffea6bbdc10 error 4 in libgc.so.1.5.3[7f80bd384000+1e000] likely on CPU 4 (core 0, socket 0)
[428868.656247] Code: 8d 3d 35 22 01 00 48 8d 0c 49 48 c1 e1 04 48 8b 84 de d8 15 00 00 48 8b 0c 0f 48 8d 0c c1 4c 8b 21 4d 85 e4 0f 84 cb 00 00 00 <49> 8b 3c 24 48 89 39 85 ed 75 26 48 c1 e0 04 48 01 46 40 85 d2 75
[429441.941985] nix[3037918]: segfault at b ip 00007f4a2b94ceef sp 00007ffceeddc570 error 4 in libgc.so.1.5.3[7f4a2b936000+1e000] likely on CPU 4 (core 0, socket 0)
[429441.941998] Code: 8d 3d 35 22 01 00 48 8d 0c 49 48 c1 e1 04 48 8b 84 de d8 15 00 00 48 8b 0c 0f 48 8d 0c c1 4c 8b 21 4d 85 e4 0f 84 cb 00 00 00 <49> 8b 3c 24 48 89 39 85 ed 75 26 48 c1 e0 04 48 01 46 40 85 d2 75
[429497.775939] nix[3038329]: segfault at b ip 00007f0675020eef sp 00007fffa0850100 error 4 in libgc.so.1.5.3[7f067500a000+1e000] likely on CPU 4 (core 0, socket 0)
[429497.775951] Code: 8d 3d 35 22 01 00 48 8d 0c 49 48 c1 e1 04 48 8b 84 de d8 15 00 00 48 8b 0c 0f 48 8d 0c c1 4c 8b 21 4d 85 e4 0f 84 cb 00 00 00 <49> 8b 3c 24 48 89 39 85 ed 75 26 48 c1 e0 04 48 01 46 40 85 d2 75
18:04:51
@matthewcroughan:defenestrate.itmatthewcroughanHappens when nil spawns nix for lsp stuff18:05:24
@matthewcroughan:defenestrate.itmatthewcroughan Caught nil's perspective: LSP[nil_ls] Failed to evaluate NixOS options: Nix eval failed with signal: 11 (SIGSEGV) (core dumped). Stderr: 19:41:53
@niksnut:matrix.orgniksnut Can you get a stacktrace? (E.g. coredumpctl gdb then bt) 20:34:03
@matthewcroughan:defenestrate.itmatthewcroughanhttps://termbin.com/miur21:20:16
@aurorasystem:matrix.orgAurora Ennie Seidr (she / her) joined the room.21:25:03
@jade_:matrix.orgjade_
In reply to @kjeremy:matrix.org
Is there a way to evaluate the entire flake with nix-eval-jobs?
nix-eval-jobs -j4 --flake .
22:20:48

Show newer messages


Back to Room ListRoom Version: 6