Hi, Ricardo Wurmus <rek...@elephly.net> skribis:
> Ludovic Courtès <ludovic.cour...@inria.fr> writes: > >> Hi! >> >> Ricardo Wurmus <rek...@elephly.net> skribis: >> >>> There are two problems here: >>> >>> 1) I don’t think “guix gc --list-dead” (or “--list-live”, or more >>> generally “findRoots” in nix/libstore/gc.cc) should delete >>> anything. It should just list and not clean up. >> >> Maybe ‘findRoots’ could populate the list of stale roots and it’d be >> up >> to the caller to decide whether to delete them or not? > > Yes, this would be better. It already does this for links whose > targets exist but cannot be read. OK. >>> 2) For cluster installations with remote file systems perhaps >>> there’s >>> something else we can do to record gcroots. We now have this [...] >>> […] we would >>> record >>> /var/guix/profiles/per-user/me/auto/8ypp8dmwnydgbsgjcms2wyb32mng0wri >>> pointing to >>> /gnu/store/ap0vrfxjdj57iqdapg8q83l4f7aylqzm-profile, and >>> then point /home/me/projects/mrg1_chipseq/.guix-profile-1-link at >>> that. Yes, removing >>> /home/me/projects/mrg1_chipseq/.guix-profile-1-link would no longer >>> free up the profile for garbage collection, but removing >>> $(readlink /home/me/projects/mrg1_chipseq/.guix-profile-1-link) >>> would. >> >> Yes, but how would per-user/me/auto/* be cleaned up? > > Yeah, that’s an open question. > > I get the appeal of having these things be cleaned up automatically > when the link disappears, but if we added this extra layer of > indirection for cluster deployments this would become manual. > > Can we make this configurable perhaps…? On my cluster installation > I’d rather have a cron job to erase the stuff in per-user/me/auto/* on > my own terms, than to have “guix gc” fail to resolve links and > consider it all garbage. Sure, why not. Do you have configuration options in mind? I have troubles wrapping my head around this problem. Should we split it into smaller chunks in bug-guix? Thanks, Ludo’.