GNU bug report logs - #37506
'guix pull --branch=master' on core-updates (Guile 2.2.6) fails

Previous Next

Package: guix;

Reported by: Marius Bakke <mbakke <at> fastmail.com>

Date: Tue, 24 Sep 2019 17:01:01 UTC

Severity: important

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

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 37506 in the body.
You can then email your comments to 37506 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#37506; Package guix. (Tue, 24 Sep 2019 17:01:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Marius Bakke <mbakke <at> fastmail.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Tue, 24 Sep 2019 17:01:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: bug-guix <at> gnu.org
Subject: [core-updates] Inferiors cannot reference master branch
Date: Tue, 24 Sep 2019 19:00:23 +0200
[Message part 1 (text/plain, inline)]
Hello,

On the 'core-updates' branch, if you try to reference the 'master'
branch in an inferior, your system will fail to build like so:

Backtrace:
          11 (primitive-load "/gnu/store/m5wq1irm2gb7r4k72qmzf1hi426?")
In ice-9/eval.scm:
    619:8 10 (_ #f)
In srfi/srfi-1.scm:
   466:18  9 (fold #<procedure 7ffff4f17ec0 at ice-9/eval.scm:336:1?> ?)
   466:18  8 (fold #<procedure 7ffff445c500 at ice-9/eval.scm:336:1?> ?)
   466:18  7 (fold #<procedure 7fffeff86ea0 at ice-9/eval.scm:336:1?> ?)
In ice-9/eval.scm:
    619:8  6 (_ #(#(#<directory (guix build utils) 7ffff5c9e500>) # ?))
In ice-9/boot-9.scm:
   2312:4  5 (save-module-excursion _)
In unknown file:
           4 (primitive-load "./guix/build/syscalls.scm")
In ice-9/eval.scm:
    619:8  3 (_ #f)
In ice-9/boot-9.scm:
  2071:24  2 (call-with-deferred-observers #<procedure 7fffeecd2480 ?>)
   260:13  1 (for-each #<procedure 7fffeecd2340 at ice-9/boot-9.scm?> ?)
In unknown file:
           0 (scm-error misc-error #f "~A ~S" ("re-exporting loc?" ?) ?)

ERROR: In procedure scm-error:
re-exporting local variable: AT_SYMLINK_NOFOLLOW
builder for `/gnu/store/3a5d7ykx6wpyw9z1i01w69cafhrzjc21-module-import-compiled.drv' failed with exit code 1
cannot build derivation `/gnu/store/l3kml1yk7ma9d1bybsjvv5iw1khy6b89-compute-guix-derivation.drv': 1 dependencies couldn't be built
guix system: error: exception thrown: #<condition &store-protocol-error [message: "build of `/gnu/store/l3kml1yk7ma9d1bybsjvv5iw1khy6b89-compute-guix-derivation.drv' failed" status: 100] 7f97fba2e540
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#37506; Package guix. (Thu, 26 Sep 2019 21:18:02 GMT) Full text and rfc822 format available.

Message #8 received at 37506 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 37506 <at> debbugs.gnu.org
Subject: Re: bug#37506: [core-updates] Inferiors cannot reference master branch
Date: Thu, 26 Sep 2019 23:17:37 +0200
Hi,

Marius Bakke <mbakke <at> fastmail.com> skribis:

> On the 'core-updates' branch, if you try to reference the 'master'
> branch in an inferior, your system will fail to build like so:

Could you provide a manifest or something to reproduce this?

Thanks,
Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#37506; Package guix. (Fri, 27 Sep 2019 12:18:01 GMT) Full text and rfc822 format available.

Message #11 received at 37506 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 37506 <at> debbugs.gnu.org
Subject: Re: bug#37506: [core-updates] Inferiors cannot reference master branch
Date: Fri, 27 Sep 2019 14:16:59 +0200
[Message part 1 (text/plain, inline)]
Ludovic Courtès <ludo <at> gnu.org> writes:

> Hi,
>
> Marius Bakke <mbakke <at> fastmail.com> skribis:
>
>> On the 'core-updates' branch, if you try to reference the 'master'
>> branch in an inferior, your system will fail to build like so:
>
> Could you provide a manifest or something to reproduce this?

Here is a manifest that reproduces this failure:

[hello-manifest.scm (text/plain, inline)]
(use-modules (guix channels)
             (guix inferior)
             (srfi srfi-1))

(define channels
  (list (channel
         (name 'guix)
         (url "https://git.savannah.gnu.org/git/guix.git")
         (commit "dec845606d2d184da31065fa26cd951b84b3ce2d"))))

(define inferior
  (inferior-for-channels channels))

(packages->manifest (first (lookup-inferior-packages inferior "hello")))
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#37506; Package guix. (Sat, 28 Sep 2019 19:53:01 GMT) Full text and rfc822 format available.

Message #14 received at 37506 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 37506 <at> debbugs.gnu.org
Subject: Re: bug#37506: [core-updates] Inferiors cannot reference master branch
Date: Sat, 28 Sep 2019 21:52:52 +0200
Hi Marius!

Marius Bakke <mbakke <at> fastmail.com> skribis:

> Here is a manifest that reproduces this failure:
>
> (use-modules (guix channels)
>              (guix inferior)
>              (srfi srfi-1))
>
> (define channels
>   (list (channel
>          (name 'guix)
>          (url "https://git.savannah.gnu.org/git/guix.git")
>          (commit "dec845606d2d184da31065fa26cd951b84b3ce2d"))))
>
> (define inferior
>   (inferior-for-channels channels))
>
> (packages->manifest (first (lookup-inferior-packages inferior "hello")))
                       ^~~~~
‘packages->manifest’ expects a list, so I had to remove the call to ‘first’.

But then it works for me on both ‘core-updates’ and ‘master’:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix package -m /tmp/t.scm -p /tmp/prof
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
installing new manifest from '/tmp/t.scm' with 1 entries
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
The following derivation will be built:
   /gnu/store/4h0y9413i4nvdwccz5svv1m5y36l384v-profile.drv
The following profile hooks will be built:
   /gnu/store/8rp1mzhlscri2ipx9xszld9sli79ywpn-ca-certificate-bundle.drv
   /gnu/store/g2cvc48yn91igp7bvsv6bw5cz47gzgzs-fonts-dir.drv
   /gnu/store/p5m0rag6q73qisrcnp0l79fdrp1hj2rv-manual-database.drv
   /gnu/store/pvhkcys50sz2apq1pb05fgva2hky91ap-info-dir.drv
building CA certificate bundle...
building fonts directory...
building directory of Info manuals...
building database for manual pages...
building /gnu/store/4h0y9413i4nvdwccz5svv1m5y36l384v-profile.drv...
1 package in profile
hint: Consider setting the necessary environment variables by running:

     GUIX_PROFILE="/tmp/prof"
     . "$GUIX_PROFILE/etc/profile"

Alternately, see `guix package --search-paths -p "/tmp/prof"'.

$ git log|head -1
commit 3128d6a16a80d40d927c41f530dd48ebbb8a036d
--8<---------------cut here---------------end--------------->8---

Am I missing something?

Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#37506; Package guix. (Sun, 29 Sep 2019 11:47:02 GMT) Full text and rfc822 format available.

Message #17 received at 37506 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 37506 <at> debbugs.gnu.org
Subject: Re: bug#37506: [core-updates] Inferiors cannot reference master branch
Date: Sun, 29 Sep 2019 13:46:38 +0200
[Message part 1 (text/plain, inline)]
Ludovic Courtès <ludo <at> gnu.org> writes:

> Hi Marius!
>
> Marius Bakke <mbakke <at> fastmail.com> skribis:
>
>> Here is a manifest that reproduces this failure:
>>
>> (use-modules (guix channels)
>>              (guix inferior)
>>              (srfi srfi-1))
>>
>> (define channels
>>   (list (channel
>>          (name 'guix)
>>          (url "https://git.savannah.gnu.org/git/guix.git")
>>          (commit "dec845606d2d184da31065fa26cd951b84b3ce2d"))))
>>
>> (define inferior
>>   (inferior-for-channels channels))
>>
>> (packages->manifest (first (lookup-inferior-packages inferior "hello")))
>                        ^~~~~
> ‘packages->manifest’ expects a list, so I had to remove the call to ‘first’.

Whoops...  It still fails in the same way for me without the (first ...).

> But then it works for me on both ‘core-updates’ and ‘master’:
>
> --8<---------------cut here---------------start------------->8---
> $ ./pre-inst-env guix package -m /tmp/t.scm -p /tmp/prof
> Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
> installing new manifest from '/tmp/t.scm' with 1 entries
> substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> The following derivation will be built:
>    /gnu/store/4h0y9413i4nvdwccz5svv1m5y36l384v-profile.drv
> The following profile hooks will be built:
>    /gnu/store/8rp1mzhlscri2ipx9xszld9sli79ywpn-ca-certificate-bundle.drv
>    /gnu/store/g2cvc48yn91igp7bvsv6bw5cz47gzgzs-fonts-dir.drv
>    /gnu/store/p5m0rag6q73qisrcnp0l79fdrp1hj2rv-manual-database.drv
>    /gnu/store/pvhkcys50sz2apq1pb05fgva2hky91ap-info-dir.drv
> building CA certificate bundle...
> building fonts directory...
> building directory of Info manuals...
> building database for manual pages...
> building /gnu/store/4h0y9413i4nvdwccz5svv1m5y36l384v-profile.drv...
> 1 package in profile
> hint: Consider setting the necessary environment variables by running:
>
>      GUIX_PROFILE="/tmp/prof"
>      . "$GUIX_PROFILE/etc/profile"
>
> Alternately, see `guix package --search-paths -p "/tmp/prof"'.
>
> $ git log|head -1
> commit 3128d6a16a80d40d927c41f530dd48ebbb8a036d
> --8<---------------cut here---------------end--------------->8---
>
> Am I missing something?

I have included a system configuration that works fine on 'master' but
not on 'core-updates'.  It consistently fails to `guix system build`
across multiple machines, including "berlin".

[minimal-vm.scm (text/plain, inline)]
(use-modules (gnu) (gnu system nss)
             (guix inferior) (guix channels)
             (srfi srfi-1))
(use-service-modules base)

(define channels
  (list (channel
         (name 'guix)
         (url "https://git.savannah.gnu.org/git/guix.git")
         (commit "9b983086345557ac0a6a40c8cb3a2afd5250d3ee"))))

(define inferior
  (inferior-for-channels channels))

(operating-system
  (host-name "antelope")
  (timezone "Europe/Paris")
  (locale "en_US.utf8")
  (kernel (first (lookup-inferior-packages "linux-libre")))

  (bootloader (bootloader-configuration
                (bootloader grub-bootloader)
                (target "/dev/sda")))

  (file-systems (cons (file-system
                        (device "/dev/sda1")
                        (mount-point "/")
                        (type "ext4"))
                      %base-file-systems))

  (users %base-user-accounts)
  (packages %base-packages)
  (services %base-services))
[signature.asc (application/pgp-signature, inline)]

Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Sun, 29 Sep 2019 19:28:03 GMT) Full text and rfc822 format available.

Notification sent to Marius Bakke <mbakke <at> fastmail.com>:
bug acknowledged by developer. (Sun, 29 Sep 2019 19:28:03 GMT) Full text and rfc822 format available.

Message #22 received at 37506-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 37506-done <at> debbugs.gnu.org
Subject: Re: bug#37506: [core-updates] Inferiors cannot reference master branch
Date: Sun, 29 Sep 2019 21:27:53 +0200
Hi Marius,

Marius Bakke <mbakke <at> fastmail.com> skribis:

> I have included a system configuration that works fine on 'master' but
> not on 'core-updates'.  It consistently fails to `guix system build`
> across multiple machines, including "berlin".

Oh I see.  This is fixed by cherry-picking
96783ed6275cd2818ff56916274e6e4582f1dc9b from ‘core-updates’ into
‘master’.  Will push shortly.

Thank you!

Ludo’.




Did not alter fixed versions and reopened. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 30 Sep 2019 07:59:01 GMT) Full text and rfc822 format available.

Changed bug title to ''guix pull --branch=master' on core-updates (Guile 2.2.6) fails' from '[core-updates] Inferiors cannot reference master branch' Request was from Ludovic Courtès <ludo <at> gnu.org> to control <at> debbugs.gnu.org. (Mon, 30 Sep 2019 08:00:04 GMT) Full text and rfc822 format available.

Severity set to 'important' from 'normal' Request was from Ludovic Courtès <ludo <at> gnu.org> to control <at> debbugs.gnu.org. (Mon, 30 Sep 2019 08:00:06 GMT) Full text and rfc822 format available.

Information forwarded to bug-guix <at> gnu.org:
bug#37506; Package guix. (Mon, 30 Sep 2019 08:16:02 GMT) Full text and rfc822 format available.

Message #31 received at 37506 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Marius Bakke <mbakke <at> fastmail.com>,  37506 <at> debbugs.gnu.org
Subject: Re: bug#37506: [core-updates] Inferiors cannot reference master branch
Date: Mon, 30 Sep 2019 10:15:45 +0200
Hello,

> Oh I see.  This is fixed by cherry-picking
> 96783ed6275cd2818ff56916274e6e4582f1dc9b from ‘core-updates’ into
> ‘master’.  Will push shortly.

On second thought, that doesn’t solve the problem for revisions on the
current ‘master’ branch between and
456c7ade095cce96f47389c37a4fe3b0390047fd and
7089f98ef1c274f1607ec314f3a16bd3c3ac89a4.  For any commit in that range,
‘guix pull --commit=COMMIT’ will now always fail with:

--8<---------------cut here---------------start------------->8---
[10/86] Loading './guix/build/syscalls.scm'...
Backtrace:
          11 (primitive-load "/gnu/store/yk0wdnkknq9wra78ndvzv2vhc11?")
In ice-9/eval.scm:
    619:8 10 (_ #f)
In srfi/srfi-1.scm:
   466:18  9 (fold #<procedure 7ffff5afbe00 at ice-9/eval.scm:336:1?> ?)
   466:18  8 (fold #<procedure 7fffef7ef0a0 at ice-9/eval.scm:336:1?> ?)
   466:18  7 (fold #<procedure 7ffff4a17420 at ice-9/eval.scm:336:1?> ?)
In ice-9/eval.scm:
    619:8  6 (_ #(#(#<directory (guix build utils) 7ffff5f51500>) # ?))
In ice-9/boot-9.scm:
   2312:4  5 (save-module-excursion _)
In unknown file:
           4 (primitive-load "./guix/build/syscalls.scm")
In ice-9/eval.scm:
    619:8  3 (_ #f)
In ice-9/boot-9.scm:
  2071:24  2 (call-with-deferred-observers #<procedure 7fffeec6ea40 ?>)
   260:13  1 (for-each #<procedure 7fffeec6e900 at ice-9/boot-9.scm?> ?)
In unknown file:
           0 (scm-error misc-error #f "~A ~S" ("re-exporting loc?" ?) ?)

ERROR: In procedure scm-error:
re-exporting local variable: AT_SYMLINK_NOFOLLOW
--8<---------------cut here---------------end--------------->8---

It’s a case where code isn’t “forward-compatible”, and it’s code needed
to build the “compute-guix-derivation” trampoline.  Bummer.

We could hack something to work around it.  For example, we could add to
‘compiled-modules’ a magic parameter that would tell it to undefine
AT_SYMLINK_NOFOLLOW & co., or we could build the trampoline with 2.2.4.

Problem is that we would potentially need to keep the hack forever.

Needs more thought…

Ludo’.




Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Wed, 02 Oct 2019 09:42:02 GMT) Full text and rfc822 format available.

Notification sent to Marius Bakke <mbakke <at> fastmail.com>:
bug acknowledged by developer. (Wed, 02 Oct 2019 09:42:02 GMT) Full text and rfc822 format available.

Message #36 received at 37506-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 37506-done <at> debbugs.gnu.org
Subject: Re: bug#37506: [core-updates] Inferiors cannot reference master branch
Date: Wed, 02 Oct 2019 11:40:58 +0200
Hi,

Ludovic Courtès <ludo <at> gnu.org> skribis:

>> Oh I see.  This is fixed by cherry-picking
>> 96783ed6275cd2818ff56916274e6e4582f1dc9b from ‘core-updates’ into
>> ‘master’.  Will push shortly.
>
> On second thought, that doesn’t solve the problem for revisions on the
> current ‘master’ branch between and
> 456c7ade095cce96f47389c37a4fe3b0390047fd and
> 7089f98ef1c274f1607ec314f3a16bd3c3ac89a4.  For any commit in that range,
> ‘guix pull --commit=COMMIT’ will now always fail with:

[...]

> ERROR: In procedure scm-error:
> re-exporting local variable: AT_SYMLINK_NOFOLLOW
>
> It’s a case where code isn’t “forward-compatible”, and it’s code needed
> to build the “compute-guix-derivation” trampoline.  Bummer.
>
> We could hack something to work around it.  For example, we could add to
> ‘compiled-modules’ a magic parameter that would tell it to undefine
> AT_SYMLINK_NOFOLLOW & co., or we could build the trampoline with 2.2.4.

I added a “quirk” for that in 37c0d4580e464a5915ea34109f78898325aae2c4.

I suppose we’ll accumulate quirks like this over time here.  Normally
they should be quite rare because the code used to build the trampoline
targets the common denominator of all Guile and Guix revisions, but
we’ll see.

Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 30 Oct 2019 11:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 4 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.