Guix derivation cannot be computed during pull

  • Open
  • quality assurance status badge
Details
2 participants
  • Andreas Enge
  • Ludovic Courtès
Owner
unassigned
Submitted by
Andreas Enge
Severity
normal
Merged with
A
A
Andreas Enge wrote on 26 Jun 17:15 +0200
(address . bug-guix@gnu.org)
ZJmrdDO_15CMYRRL@jurong
Hello,

here is what happens on a server I do not manage to update for about a year now:

$ guix pull
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
Authenticating channel 'guix', commits 9edb3f6 to 1bc878d (1,055 new commits)...
Building from this channel:
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
building /gnu/store/a2zzynwqii5j84gg9zn2brkh0hiqrh6n-module-import.drv...
building /gnu/store/s8bj7c9nd85ng871h4440w7jw6p0hxpq-module-import.drv...
building /gnu/store/3m2pndmnxj91s80ad1kvjw7kjsgpf733-module-import-compiled.drv...
building /gnu/store/fg3r0s0r1sbljjdvgsnjkkziskn3fagp-module-import-compiled.drv...
building /gnu/store/a2lgmyr95d3nr0snp31662rygf5g7cz7-compute-guix-derivation.drv...
Computing Guix derivation for 'x86_64-linux'... /guix pull: error: You found a bug: the program '/gnu/store/wvni7k3g4wnf0k782zgfv4gya9bnw8gg-compute-guix-derivation'
failed to compute the derivation for Guix (version: "1bc878ded2ea349384da6a72d4b8326c63c794b4"; system: "x86_64-linux";
host version: "35b176daf1a466f136f0b77c03de78f482a30702"; pull-version: 1).
Please report the COMPLETE output above by email to <bug-guix@gnu.org>.

Here is the content of the compute-guix-derivation script:
#!/gnu/store/1kws5vkl0glvpxg7arabsv6q9vazp0hx-guile-3.0.7/bin/guile --no-auto-compile
!#
(eval-when (expand load eval) (set! %load-path (cons "/gnu/store/ic6dz76n6kax93q32b3356dvpl19iv5w-module-import" %load-path)) (set! %load-compiled-path (cons "/gnu/store/hkmx7wwwzdycj5q76j08ffn479vmvdax-module-import-compiled" %load-compiled-path)))(begin (use-modules (ice-9 match)) (eval-when (expand load eval) (match (command-line) ((_ source _ ...) (match %load-path ((front _ ...) (unless (string=? front source) (set! %load-path (list source (string-append "/gnu/store/60jl4xry9c93j9l0rr7nkvbw7dihjz4k-guile-gcrypt-0.3.0" "/share/guile/site/" (effective-version)) front))))))) (set! %load-compiled-path (cons (string-append "/gnu/store/60jl4xry9c93j9l0rr7nkvbw7dihjz4k-guile-gcrypt-0.3.0" "/lib/guile/" (effective-version) "/site-ccache") %load-compiled-path)) (read-disable (quote positions))) (use-modules (guix store) (guix self) (guix derivations) (srfi srfi-1)) (match (command-line) ((_ source system version protocol-version build-output) (let* ((proto (string->number protocol-version)) (store (if (integer? proto) (port->connection (duplicate-port (current-input-port) "w+0") #:version proto) (open-connection))) (sock (socket AF_UNIX SOCK_STREAM 0))) (connect sock AF_UNIX build-output) (display (and=> (parameterize ((current-warning-port (%make-void-port "w")) (current-build-output-port sock)) (run-with-store store (guix-derivation source version "3.0" #:channel-metadata (quote (repository (version 0) (url "https://git.savannah.gnu.org/git/guix.git")(branch "master") (commit "1bc878ded2ea349384da6a72d4b8326c63c794b4") (name guix) (introduction (channel-introduction (version 0) (commit "9edb3f66fd807b096b48283debdcddccfea34bad") (signer "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))) #:pull-version 1) #:system system)) derivation-file-name))))))

If I remember well, in the past I tried to update with a guix from guix
(obtained with "guix install guix") and also with one from git
("./pre-inst-env guix pull"), and the result was always the same.

So here is the sad outdated state:
$ guix describe
Generation 10 Aug 26 2022 15:29:35 (current)
guix 35b176d
branch: master
commit: 35b176daf1a466f136f0b77c03de78f482a30702

Andreas
L
L
Ludovic Courtès wrote on 7 Jul 16:09 +0200
(name . Andreas Enge)(address . andreas@enge.fr)(address . 64302@debbugs.gnu.org)
87cz13ke46.fsf@gnu.org
Hello,

Andreas Enge <andreas@enge.fr> skribis:

Toggle quote (23 lines)
> here is what happens on a server I do not manage to update for about a year now:
>
> $ guix pull
> Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
> Authenticating channel 'guix', commits 9edb3f6 to 1bc878d (1,055 new commits)...
> Building from this channel:
> guix https://git.savannah.gnu.org/git/guix.git 1bc878d
> substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
> substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
> substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
> building /gnu/store/a2zzynwqii5j84gg9zn2brkh0hiqrh6n-module-import.drv...
> building /gnu/store/s8bj7c9nd85ng871h4440w7jw6p0hxpq-module-import.drv...
> building /gnu/store/3m2pndmnxj91s80ad1kvjw7kjsgpf733-module-import-compiled.drv...
> building /gnu/store/fg3r0s0r1sbljjdvgsnjkkziskn3fagp-module-import-compiled.drv...
> building /gnu/store/a2lgmyr95d3nr0snp31662rygf5g7cz7-compute-guix-derivation.drv...
> Computing Guix derivation for 'x86_64-linux'... /guix pull: error: You found a bug: the program '/gnu/store/wvni7k3g4wnf0k782zgfv4gya9bnw8gg-compute-guix-derivation'
> failed to compute the derivation for Guix (version: "1bc878ded2ea349384da6a72d4b8326c63c794b4"; system: "x86_64-linux";
> host version: "35b176daf1a466f136f0b77c03de78f482a30702"; pull-version: 1).
> Please report the COMPLETE output above by email to <bug-guix@gnu.org>.

Weird. I tried the same time travel and it went well:

Toggle snippet (45 lines)
$ guix time-machine --commit=35b176daf1a466f136f0b77c03de78f482a30702 -- time-machine -- describe
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
[…]
building /gnu/store/pa38h9kqq05s77k0vq62amc99sv3xm2g-config.scm.drv...
building /gnu/store/ywbkw3m7dbk5g071v746p2q23v0x9ib0-git.scm.drv...
building /gnu/store/k4kidxvjp5bghrjk8n9y1n4k52lwrcmh-hash.scm.drv...
building /gnu/store/a2zzynwqii5j84gg9zn2brkh0hiqrh6n-module-import.drv...
building /gnu/store/s8bj7c9nd85ng871h4440w7jw6p0hxpq-module-import.drv...
building /gnu/store/3m2pndmnxj91s80ad1kvjw7kjsgpf733-module-import-compiled.drv...
building /gnu/store/fg3r0s0r1sbljjdvgsnjkkziskn3fagp-module-import-compiled.drv...
building /gnu/store/4kg185vfqw5c33kr5d35gzqyn6i1pjn7-compute-guix-derivation.drv...
Computing Guix derivation for 'x86_64-linux'... /
substitute: updating substitutes from 'http://192.168.1.48:8123'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://guix.bordeaux.inria.fr'... 100.0%
The following derivations will be built:
/gnu/store/cgi7c05l797glr7siqwv02b83q7wyw9w-profile.drv
/gnu/store/3pvbhrpp7vab9fm1x3pjwx4w6g5wx5w0-guix-849f31d57.drv
/gnu/store/3mjlbc8g0lhv933yzdbsk813vv87pbf2-guix-daemon.drv
/gnu/store/4bxlkz3nmvx7hgrfk6p1y9pvvkb23xw6-guix-command.drv
/gnu/store/9n6mkg3xnlxx3i7gycf8azmwksh6vixl-guix-module-union.drv
/gnu/store/p4jg8ci223h5wrqc5iy2ncl77vq3lsk5-guix-849f31d57-modules.drv
/gnu/store/r8x4lb04j0w8ysvz83kxhcxdj1gzf66p-guix-config-modules.drv
/gnu/store/41y56mzckgfwki39b0x7d32dzi59j9gj-guix-config.drv
/gnu/store/k394a79aq2v11yj6f88z5r6cq1b4f2zh-guix-config-source.drv
/gnu/store/9ns9frgaxy21nmhml1ixmbkymbl36xx4-config.scm.drv
/gnu/store/al2fpclasimp7wsgph2v51my9ckn9far-inferior-script.scm.drv
/gnu/store/k0581jd5ss6207p2q99mn2yhsh2y0czj-profile.drv
[…]
building /gnu/store/3pvbhrpp7vab9fm1x3pjwx4w6g5wx5w0-guix-849f31d57.drv...
building CA certificate bundle...
listing Emacs sub-directories...
building fonts directory...
building directory of Info manuals...
building profile with 1 package...
building /gnu/store/al2fpclasimp7wsgph2v51my9ckn9far-inferior-script.scm.drv...
building package cache...
building profile with 1 package...
guix 849f31d
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: 849f31d5746f5633f9f2a768b76739afc257ae99

Is it reproducible for you? Could it be a transient failure?

Annoying there aren’t more details in the output.

Thanks,
Ludo’.
A
A
Andreas Enge wrote on 7 Jul 16:45 +0200
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 64302@debbugs.gnu.org)
ZKglCkeImMmbMcoQ@jurong
Am Fri, Jul 07, 2023 at 04:09:13PM +0200 schrieb Ludovic Courtï¿œs:
Toggle quote (2 lines)
> Is it reproducible for you? Could it be a transient failure?

It is not transient, it happens consistently.
Can I do anything myself to trick it into working?

Andreas
L
L
Ludovic Courtès wrote on 10 Jul 23:38 +0200
(name . Andreas Enge)(address . andreas@enge.fr)(address . 64302@debbugs.gnu.org)
87edlf78go.fsf@gnu.org
Hi,

Andreas Enge <andreas@enge.fr> skribis:

Toggle quote (6 lines)
> Am Fri, Jul 07, 2023 at 04:09:13PM +0200 schrieb Ludovic Courtès:
>> Is it reproducible for you? Could it be a transient failure?
>
> It is not transient, it happens consistently.
> Can I do anything myself to trick it into working?

Is there any more data you can grab? Perhaps in
/var/log/guix-daemon.log or similar if that’s on a foreign distro?

And as a last resort, ‘strace -f -o /tmp/log -s 500 guix pull’, so we
can get an idea of what happens.

TIA!

Ludo’.
L
L
Ludovic Courtès wrote on 11 Jul 00:33 +0200
control message for bug #64302
(address . control@debbugs.gnu.org)
87o7kj5rd9.fsf@gnu.org
merge 64302 64489
quit
A
A
Andreas Enge wrote on 19 Jul 12:08 +0200
Re: bug#64302: Guix derivation cannot be computed during pull
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 64302@debbugs.gnu.org)
ZLe2AimUHijQlPIR@jurong
Hello,

Am Mon, Jul 10, 2023 at 11:38:47PM +0200 schrieb Ludovic Courtès:
Toggle quote (3 lines)
> Is there any more data you can grab? Perhaps in
> /var/log/guix-daemon.log or similar if that’s on a foreign distro?

it is a GNU system virtual machine. And I have this in /var/log/messages:

Jul 19 11:57:51 localhost vmunix: [4619013.095327] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/,task=69h614ii57kpgn5,pid=16408,uid=1000
Jul 19 11:57:51 localhost vmunix: [4619013.095350] Out of memory: Killed process 16408 (69h614ii57kpgn5) total-vm:540000kB, anon-rss:433096kB, file-rss:0kB, shmem-rss:0kB, UID:1000 pgtables:952kB oom_score_adj:0

Toggle quote (3 lines)
> And as a last resort, ‘strace -f -o /tmp/log -s 500 guix pull’, so we
> can get an idea of what happens.

While this appears in the strace log:

16408 +++ killed by SIGKILL +++

So we have the culprit; not a Guix bug per se.

$ cat /proc/meminfo
MemTotal: 997864 kB
MemFree: 679044 kB
MemAvailable: 817052 kB

It looks like 1GB of memory is not enough for "guix pull", which is
not nice. Has this been addressed in later commits? Is there a known
lower memory limit for using Guix?

Andreas
L
L
Ludovic Courtès wrote on 18 Aug 15:33 +0200
(name . Andreas Enge)(address . andreas@enge.fr)(address . 64302@debbugs.gnu.org)
87pm3ksceg.fsf@gnu.org
Hi,

Andreas Enge <andreas@enge.fr> skribis:

Toggle quote (4 lines)
> It looks like 1GB of memory is not enough for "guix pull", which is
> not nice. Has this been addressed in later commits? Is there a known
> lower memory limit for using Guix?

This is terrible. :-/

The culprit here is Guile, specifically its compiler and psyntax. I
made some improvements to reduce its memory consumption in 3.0, but it’s
definitely not 2x or so unfortunately. So, to be continued…

Ludo’.
?