Hello! Mathieu Othacehe skribis: > A lot of builds, among them ~20 system tests[1], are failing with: > "cannot build missing derivation > ?/gnu/store/hs6kp1lqgymhyp3jndc0dsp0pn4psgv0-gui-installed-desktop-os-encrypted.drv?" > errors. I have a disappointingly simple hypothesis for this. Remember that “missing derivation” errors happen primarily for system tests. Turns out that ‘cleanup-cuirass-roots’ in maintenance.git, used as an mcron job, explicitly removes GC roots for things like *-os-encrypted once they’re more than two days old, as well as GC roots for the corresponding .drv. I think this was increasing the likelihood that a .drv would be GC’d by the time we run the test: under high load¹, it’s plausible that a system test wouldn’t be built within two days after it’s been queued. I’m proposing the change below to address this; I don’t think we need ‘--gc-keep-outputs --gc-keep-derivations’ anymore now that we keep things in ‘guix publish’ cache first and foremost. Thoughts? In addition to the mcron job, Cuirass’s own ‘register-gc-roots’ procedure periodically deletes GC roots older than ‘%gc-roots-ttl’ (30 days in practice). That’s okay, except that it would be safer to delete GC roots for a .drv if and only if it’s been built already. Thanks, Ludo’. ¹ The queue was often processed slowly, with many workers remaining idle due to the bug fixed by .