GNU bug report logs - #32966
'gexp-modules' fails to delete duplicates when code is evaluated

Previous Next

Package: guix;

Reported by: Clément Lassieur <clement <at> lassieur.org>

Date: Sun, 7 Oct 2018 12:30:02 UTC

Severity: important

Done: ludo <at> gnu.org (Ludovic Courtès)

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: ludo <at> gnu.org (Ludovic Courtès)
Cc: tracker <at> debbugs.gnu.org
Subject: bug#32966: closed ('gexp-modules' fails to delete duplicates when
 code is evaluated)
Date: Sat, 27 Oct 2018 15:19:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Sat, 27 Oct 2018 17:18:04 +0200
with message-id <87d0rv770z.fsf <at> gnu.org>
and subject line Re: bug#32966: tests/install.scm tests all fail
has caused the debbugs.gnu.org bug report #32966,
regarding 'gexp-modules' fails to delete duplicates when code is evaluated
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
32966: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=32966
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Clément Lassieur <clement <at> lassieur.org>
To: bug-guix <at> gnu.org
Subject: tests/install.scm tests all fail
Date: Sun, 07 Oct 2018 14:23:48 +0200
Hi,

Those tests are run at each evaluation and they all fail.

    test.btrfs-root-os.x86_64-linux
    test.encrypted-root-os.x86_64-linux
    test.installed-extlinux-os.x86_64-linux
    test.separate-home-os.x86_64-linux
    test.raid-root-os.x86_64-linux
    test.separate-store-os.x86_64-linux
    test.iso-image-installer.x86_64-linux
    test.installed-os.x86_64-linux
    
    test.btrfs-root-os.i686-linux
    test.encrypted-root-os.i686-linux
    test.installed-extlinux-os.i686-linux
    test.separate-home-os.i686-linux
    test.raid-root-os.i686-linux
    test.separate-store-os.i686-linux
    test.iso-image-installer.i686-linux
    test.installed-os.i686-linux

This is the output of one of them when run manually:

--8<---------------cut here---------------start------------->8---
$ guix build /gnu/store/0l77fgdgp4c3yq82mwd1kq1rzckn5x9b-btrfs-root-os.drv
substitute: updating substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bayfront.guixsd.org'... 100.0%
substitute: updating substitutes from 'https://berlin.guixsd.org'... 100.0%
The following derivations will be built:
   /gnu/store/0l77fgdgp4c3yq82mwd1kq1rzckn5x9b-btrfs-root-os.drv
   /gnu/store/hk27hcjkrcsjacpj0f6bjdr48glj73jv-module-import-compiled.drv
   /gnu/store/l6vzjb50ywb3xh7m0jh67b1y1l8mddc5-module-import.drv
   /gnu/store/kg33b56kayrqy6a12rmcg2icwchxaik8-builder-in-linux-vm.drv
   /gnu/store/a8cwqky87qjwi1wrfm38wv8ivhvim3dr-shepherd-cow-store.scm.drv
   /gnu/store/7nkmah5qy0176zx1hv9szifc4hqf7xwj-shepherd-term-tty3.scm.drv
   /gnu/store/9gqb8lgmlmmpfrvlqyzzzygknvdq0j77-shepherd.conf.drv
   /gnu/store/8z3nfh5psn6gf16yn744bkd1b6k9s958-boot.drv
   /gnu/store/wv6h79wl3iwwkkxw1lj482ccig8vvg0j-manual-database.drv
   /gnu/store/68fdr40vb3k7hnjxhagd5i13vlp7irvn-profile.drv
   /gnu/store/5zwawq90pdibkjwirfm6ag4cf9zp344h-system.drv
   /gnu/store/7b054w5p8870k2rdc7jfimqk2k6n163d-module-import.drv
   /gnu/store/ip8h5xsn6cw2xh7l16sqhm4f41nqgjdd-grub.cfg.drv
   /gnu/store/w3i1s5k3d01wwn8xyc2m4v6aqk2fw4wx-module-import-compiled.drv
   /gnu/store/x7ap44jargq6kq2kwvgf6h81dz4j15ln-linux-vm-loader.drv
   /gnu/store/wi23bh8017dxq4ljsvv7m3gqjkynbbdn-disk-image.drv
   /gnu/store/qn1302dzn8f1k2b8v928hbm9ln86qx13-installation.drv
0.0 MB will be downloaded:
   /gnu/store/54j2a2bfzfd8gdxlan0v6r8zjfb6ywj2-gc-roots
   /gnu/store/fzbxdfy357zmbs3f5333kg3l5b5h20jp-system
building /gnu/store/7b054w5p8870k2rdc7jfimqk2k6n163d-module-import.drv...
substitute: updating substitutes from 'https://mirror.hydra.gnu.org'... 100.0%
substitute: updating substitutes from 'https://bayfront.guixsd.org'... 100.0%
substitute: updating substitutes from 'https://berlin.guixsd.org'... 100.0%
Backtrace:
           2 (primitive-load "/gnu/store/fcybzbgns1nsglrkdj833mk53si?")
In srfi/srfi-1.scm:
    640:9  1 (for-each #<procedure c487a0 at ice-9/eval.scm:333:13 ?> ?)
In unknown file:
           0 (copy-file "/gnu/store/sqacjhyfz32diqys3pp7j6x8bs2zx7p?" ?)

ERROR: In procedure copy-file:
In procedure copy-file: Permission denied
builder for `/gnu/store/7b054w5p8870k2rdc7jfimqk2k6n163d-module-import.drv' failed with exit code 1
build of /gnu/store/7b054w5p8870k2rdc7jfimqk2k6n163d-module-import.drv failed
View build log at '/var/log/guix/drvs/7b/054w5p8870k2rdc7jfimqk2k6n163d-module-import.drv.gz'.
cannot build derivation `/gnu/store/wi23bh8017dxq4ljsvv7m3gqjkynbbdn-disk-image.drv': 1 dependencies couldn't be built
cannot build derivation `/gnu/store/qn1302dzn8f1k2b8v928hbm9ln86qx13-installation.drv': 1 dependencies couldn't be built
cannot build derivation `/gnu/store/0l77fgdgp4c3yq82mwd1kq1rzckn5x9b-btrfs-root-os.drv': 1 dependencies couldn't be built
guix build: error: build failed: build of `/gnu/store/0l77fgdgp4c3yq82mwd1kq1rzckn5x9b-btrfs-root-os.drv' failed
--8<---------------cut here---------------end--------------->8---

Clément


[Message part 3 (message/rfc822, inline)]
From: ludo <at> gnu.org (Ludovic Courtès)
To: Clément Lassieur <clement <at> lassieur.org>
Cc: 32966-done <at> debbugs.gnu.org
Subject: Re: bug#32966: tests/install.scm tests all fail
Date: Sat, 27 Oct 2018 17:18:04 +0200
Hi Clément,

Clément Lassieur <clement <at> lassieur.org> skribis:

> This is the output of one of them when run manually:
>
> $ guix build /gnu/store/0l77fgdgp4c3yq82mwd1kq1rzckn5x9b-btrfs-root-os.drv

[...]

> Backtrace:
>            2 (primitive-load "/gnu/store/fcybzbgns1nsglrkdj833mk53si?")
> In srfi/srfi-1.scm:
>     640:9  1 (for-each #<procedure c487a0 at ice-9/eval.scm:333:13 ?> ?)
> In unknown file:
>            0 (copy-file "/gnu/store/sqacjhyfz32diqys3pp7j6x8bs2zx7p?" ?)
>
> ERROR: In procedure copy-file:
> In procedure copy-file: Permission denied
> builder for `/gnu/store/7b054w5p8870k2rdc7jfimqk2k6n163d-module-import.drv' failed with exit code 1

This is fixed by 932d1600564cbf359a6ccd1086b968a934bef8e5, which
contains an explanation.

To reproduce it from a checkout, all you had to do is:

  make
  touch guix/self.scm
  ./pre-inst-env guix system disk-image gnu/system/examples/bare-bones.tmpl

The effect of ‘touch’ is that (guix self) was being evaluated and as a
consequence, ‘make-config.scm’, which is called by ‘qemu-image’ in (gnu
system vm), would always return a fresh object.

As a result, the ‘delete-duplicates’ call in ‘gexp-attribute’ would
leave two occurrences of:

  ((guix config) => ,(scheme-file …))

Thus, the builder of module-import.drv would look like this:

--8<---------------cut here---------------start------------->8---
 (for-each (match-lambda
	    ((final-path store-path)
	     (mkdir-p (dirname final-path))
	     (copy-file store-path final-path)))
	   (quote (("guix/build/utils.scm" "/gnu/store/bp7pms1s0563kcyjyla0f7c89jimra9k-utils.scm")
		   ("gnu/build/vm.scm" "/gnu/store/jnfmvx6lay9iqz7fy25myvvf1n3imac1-vm.scm")
                   ;; …
		   ("gnu/build/install.scm" "/gnu/store/wfrh0xm36r7bbqfq07s91ymcinpc79sa-install.scm")
		   ("guix/config.scm" "/gnu/store/sqacjhyfz32diqys3pp7j6x8bs2zx7pv-config.scm")
		   ("guix/config.scm" "/gnu/store/sqacjhyfz32diqys3pp7j6x8bs2zx7pv-config.scm"))))  ;<- twice!
--8<---------------cut here---------------end--------------->8---

The module-import.drv build would then fail with “Permission denied”
while attempting to copy guix/config.scm for the second time.


As to why (guix self) is evaluated in the context of Cuirass… it’s
probably because of the ‘guix offload’ issue fixed in
e4752118691e41ae8307649d1abfd4739b3e4bfa.  Are you using offloading on
your build farm?

Thanks,
Ludo’.


This bug report was last modified 6 years and 184 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.