Subject: bug#63852: ‘guix-package-cache.drv’ eats all your memory with ‘guix-cran’

From: Ludovic Courtès <[email-masked]>
Date: Mon, 05 Jun 2023 18:34:55 +0200

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

> Ludovic Courtès <[email-masked]> skribis:
>
>> It goes OK until building /gnu/store/6rfaqfq693vda59a55asc4wjjg52ilns-guix-package-cache.drv, which
>> consumes memory until it gets OOM-killed.
>
> The culprit is easily found (here on just the 22K packages of ‘guix’, so
> less than half of what you get with ‘guix-cran’):

(Beware of “easily” when the guy doesn’t know what he’s talking about.)

Turns out the problem is more pedestrian: ‘r-future-tests’ depends on
itself.

--8<---------------cut here---------------start------------->8---
$ guix import cran future.tests

Starting download of /tmp/guix-file.TOBjcf
>From http://cran.r-project.org/src/contrib/future.tests_0.7.0.tar.gz...
 …_0.7.0.tar.gz  186KiB               1.2MiB/s 00:00 ▕██████████████████▏ 100.0%
(package
  (name "r-future-tests")
  (version "0.7.0")
  (source (origin
            (method url-fetch)
            (uri (cran-uri "future.tests" version))
            (sha256
             (base32
              "10g1w99xqr7l0cn27642aphqcvfidgpas38f84r815yy6k1ryrlx"))))
  (properties `((upstream-name . "future.tests")))
  (build-system r-build-system)
  (propagated-inputs (list r-cli r-crayon r-future r-prettyunits r-sessioninfo))
  (native-inputs (list r-future-tests))
  (home-page "https://future.tests.futureverse.org")
  (synopsis "Test Suite for 'Future API' Backends")
  (description
   "Backends implementing the Future API, as defined by the future package, should
use the tests provided by this package to validate that they meet the minimal
requirements of the Future API. The tests can be performed easily from within R
or from outside of R from the command line making it straightforward to include
them in package tests and in Continuous Integration (CI) pipelines.")
$ guix describe
Generation 265  Jun 04 2023 23:48:31    (current)
  guix eed55a6
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: eed55a6544d5bda2245ec853e5fa4b28e1865bea
--8<---------------cut here---------------end--------------->8---

To be fixed in the importer.

Ludo’.