Subject: bug#63667: channel-with-substitutes-available and broken revision

From: Simon Tournier <[email-masked]>
Date: Tue, 23 May 2023 17:49:47 +0200

Hi,

As documented by the manual [1], I have:

--8<---------------cut here---------------start------------->8---
(use-modules (guix ci))

(list (channel-with-substitutes-available
       %default-guix-channel
       "https://ci.guix.gnu.org"
--8<---------------cut here---------------end--------------->8---

Running “guix pull”, it picks e499cb2c12d7f1c6d2f004364c9cc7bdb7e38cd5
which is broken [2].  To be precise, this commit contains a cycle:
emacs-keycast lists emacs-keycast as propagated inputs; introduced by the
previous commit 87d5754107e2393cc5d2ab44cd9586b3bf73b011 [3].

This cycle leads to an exploding guix-package-cache.drv.  It consumes
all the RAM.

What happens is that ’channel-with-substitutes-available’ checks the
latest success of the “guix” jobset [4].  And that passes [5], at least
for x86_64.

It passes because the Cuirass jobset does not build
guix-package-cache.drv.  Otherwise it would probably fail; as it happens
on Bordeaux [2].

Well, I do not find where this jobset “guix” is defined but it appears
to me worth to add this guix-package-cache.drv derivation.

1: https://guix.gnu.org/manual/devel/en/guix.html#Channels-with-Substitutes
2: https://data.guix.gnu.org/revision/e499cb2c12d7f1c6d2f004364c9cc7bdb7e38cd5
3: https://git.savannah.gnu.org/cgit/guix.git/commit/?id=87d5754107e2393cc5d2ab44cd9586b3bf73b011
4: https://ci.guix.gnu.org/jobset/guix
5: https://ci.guix.gnu.org/eval/479592

Cheers,
simon

PS: If one has enough RAM, one could read:

--8<---------------cut here---------------start------------->8---
GC Warning: Repeated allocation of very large block (appr. size 1073741824):
            May lead to memory leak and poor performance
-8<---------------cut here---------------end--------------->8---

And note that if one has more RAM, then this guix-package-cache.drv can
even be built.  Maybe a bug on Guile side, another story.