Ludovic Courtès <[email protected]> skribis:

> Cuirass stores GC roots for all the derivations of its jobsets under
> /var/guix/profiles/per-user/cuirass/cuirass (or similar).
>
> The ‘delete-old-gc-roots’ periodically deletes these GC roots (which are
> not just derivations), but it’s supposed to keep GC roots to derivations
> that are queued: that was done in
> 55af0f70c0d4938b8eda777382bbc4d8f5698a37.
>
> Unfortunately, there’s ample evidence on berlin that GC roots of .drv
> currently queued get removed anyway.  This causes workers to try in vain
> to substitute them, to eventually reject the build, which gets canceled
> by ‘remote-server’.

This was fixed or at least mitigated by these Cuirass commits:

  e96f088 * register: Add ‘--derivation-ttl’ option, default to twice ‘--ttl’.
  304c09b * base: Be more conservative in deciding whether to remove a .drv GC 
root.

In particular, .drv for builds currently in ‘failed-derivation’ status
are no longer GC’d when other builds in that evaluation might eventually
trigger a failed-derivation -> scheduled transition.

Ludo’.



Reply via email to