!UNVBThoJtlIiVwiDjU:nixos.org

Staging

388 Members
Staging merges | Running staging cycles: https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+head%3Astaging-next+head%3Astaging-next-25.11 | Review Reports: https://malob.github.io/nix-review-tools-reports/124 Servers

Load older messages


SenderMessageTime
26 Jun 2026
@emilazy:matrix.orgemilyok, not the bug I was thinking of19:41:59
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Remote builds are generally ugh... very racy yeah19:43:35
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Some work to be done there certainly19:43:49
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)Specifically https://github.com/NixOS/nix/pull/15719, which I'll return to19:44:16
@emilazy:matrix.orgemily tl;dr normally materialized .drv keeps deps of a running build alive; in remote build scenario you don't necessarily have .drv; you are saved by the fact that /proc/*/environ is used as gcroots; but with structured attrs your builder's root process's /proc/*/environ doesn't contain the paths 19:44:22
@emilazy:matrix.orgemily but it does contain paths to .attrs.json/.attrs.sh admittedly 19:44:35
@emilazy:matrix.orgemilyBUT the builder user owns those and can delete them19:44:40
@emilazy:matrix.orgemilyso you can stash a path from your structured attrs, delete those files, wait for a GC, use after free19:44:54
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)The issue in question is probably that the build hook doesn't root inputs befory copying those over19:44:57
@emilazy:matrix.orgemily(I forgot that you had to actually delete the structured attrs files to exploit this)19:45:07
@emilazy:matrix.orgemily(which admittedly makes it unlikely to happen in the real world, but it's not great!)19:45:23
@emilazy:matrix.orgemilyoh I see dram is way ahead of me yeah19:45:52
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)You'd be disappointed by the number of GC fixes we merged lately19:46:15
@xokdvium:matrix.orgSergei Zimmerman (xokdvium)So much shit has just been generally broken and not (temp)rooted19:46:28
@hexa:lossy.networkhexa

sh: line 1: /nix/store/kjixkcwl9jivrzasdqmmjd9gcfr3wfcq-cmake-minimal-4.1.2/bin/cmake: No such file or directory

19:46:43
@hexa:lossy.networkhexasmh19:46:45
@emilazy:matrix.orgemilyperhaps disappointed; after looking over GC code for my own nefarious purposes, certainly not surprised19:46:48
@emilazy:matrix.orgemilywhat worries me is cases where a build system will "handle" something missing and we get unreproducible builds from Hydra19:47:12
@emilazy:matrix.orgemilye.g. optional dependency detection19:47:21
@k900:0upti.meK900I wonder if it makes sense, as a horrible workaround, to drain the builders for the GC runs19:47:24
@k900:0upti.meK900At least until we are more confident about this19:47:30
@emilazy:matrix.orgemilythat's a scary environment to be operating in imo19:47:31
@emilazy:matrix.orgemilyjust reimage them whenever they fill up :D19:47:53
@k900:0upti.meK900Or that19:48:14
@grimmauld:m.grimmauld.deGrimmauld (any/all) even worse if that means security critical stuff is missing. Like, dunno, cacert or something.... 20:02:29
@emilazy:matrix.orgemilyprobably relatively unlikely for that to be optional deps I'd reckon20:02:52
@emilazy:matrix.orgemilybut spooky in general20:02:57
@hexa:lossy.networkhexawe got a clang build at least20:06:06
@hexa:lossy.networkhexathird try20:06:07
@emilazy:matrix.orgemilynobody tell hexa there's multiple of those20:06:57

Show newer messages


Back to Room ListRoom Version: 6