Subject: bug#49439: closed (Re: bug#49439: grafts cause “guix environment” to get killed with OOM)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 10 Aug 2021 15:37:03 +0000

Your bug report

#49439: grafts cause “guix environment” to get killed with OOM

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
49439: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=49439
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#49439: grafts cause “guix environment” to get killed with OOM
From: Ludovic Courtès <[email-masked]>
To: Sarah Morgensen <[email-masked]>
Cc: Ricardo Wurmus <[email-masked]>, [email-masked]
Date: Tue, 10 Aug 2021 17:36:27 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello!

Ludovic Courtès <[email-masked]> skribis:

> I added counters and ‘pk’ calls in ‘map/accumulate-builds’ & co. to see
> what happens.  AFAICS, a cutoff as in the attached patch does the job.
> It’s a basic heuristic to avoid unbounded growth, at the expense of
> possibly reduced accumulation.  For example, here’s the effect on my
> user profile with 300+ packages:

Pushed as fa81971cbae85b39183ccf8f51e8d96ac88fb4ac.

I saw your message on IRC, Sarah; note that because grafts are “dynamic
dependencies” (they depend on previous build results), we cannot know in
advance which grafts we’re going to build, so there’s necessarily at
least a second phase during which grafts get built.  See
<https://guix.gnu.org/en/blog/2020/grafts-continued/> for background.

Thanks!

Ludo’.

Subject: grafts cause “guix environment” to get killed with OOM
From: Ricardo Wurmus <[email-masked]>
To: [email-masked]
Date: Tue, 06 Jul 2021 16:38:28 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

With a recent version of Guix, “guix environment” will not 
terminate on its own, keeps the CPU busy, and gets killed when the 
system eventually runs out of memory.

$ guix describe -f channels

--8<---------------cut here---------------start------------->8---
(list (channel
        (name 'guix)
        (url "/home/rekado/dev/gx/branches/master")
        (commit
          "685cfdec94e5e48c4ad28de53466a28dfc258edb")))
--8<---------------cut here---------------end--------------->8---

$ guix environment pigx-scrnaseq
[wait until it gets killed]

The problem disappears when grafts are disabled:

$ guix environment --no-grafts pigx-scrnaseq
$ [env] yay!

-- 
Ricardo