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 2023 17:15
(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 2023 16:09
(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 2023 16:45
(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 2023 23:38
(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 2023 00:33
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 2023 12:08
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 2023 15:33
(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’.
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 64302@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 64302
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch