GNU bug report logs -
#29881
Disabled fresh-auto-compile leads to ABI breakage in user config files
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 29881 in the body.
You can then email your comments to 29881 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-guix <at> gnu.org
:
bug#29881
; Package
guix
.
(Thu, 28 Dec 2017 22:19:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Diego Nicola Barbato <dnbarbato <at> posteo.de>
:
New bug report received and forwarded. Copy sent to
bug-guix <at> gnu.org
.
(Thu, 28 Dec 2017 22:19:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Hello Guix,
When running `guix system reconfigure /etc/config.scm' as root I get the
following error:
guix system: error: failed to load '/etc/config.scm':
/etc/config.scm:24:9: /etc/config.scm:24:9: In procedure allocate-struct: Wrong type argument in position 2: 3
This error appears for the first time in commit
4ca90ff5976434a2b6e758df38df54387ae70c1b. On line 24 of my config file
I have declared a mapped device of type luks-device-mapping. If the
config file does not contain any mapped-devices declaration `guix system
reconfigure' works as expected (checked in a VM).
I run GuixSD on a x86_64 machine.
Greetings
Diego N. Barbato
Information forwarded
to
bug-guix <at> gnu.org
:
bug#29881
; Package
guix
.
(Thu, 28 Dec 2017 22:31:02 GMT)
Full text and
rfc822 format available.
Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):
Can you send your config.scm?
Without it, it's hard to know if there is a problem with your config.scm or the Guix mapper-devices code.
-------- Original Message --------
From: Diego Nicola Barbato <dnbarbato <at> posteo.de>
Sent: December 28, 2017 5:18:04 PM EST
To: 29881 <at> debbugs.gnu.org
Subject: bug#29881: guix system reconfigure fails if config.scm contains LUKS mapped-devices
Hello Guix,
When running `guix system reconfigure /etc/config.scm' as root I get the
following error:
guix system: error: failed to load '/etc/config.scm':
/etc/config.scm:24:9: /etc/config.scm:24:9: In procedure allocate-struct: Wrong type argument in position 2: 3
This error appears for the first time in commit
4ca90ff5976434a2b6e758df38df54387ae70c1b. On line 24 of my config file
I have declared a mapped device of type luks-device-mapping. If the
config file does not contain any mapped-devices declaration `guix system
reconfigure' works as expected (checked in a VM).
I run GuixSD on a x86_64 machine.
Greetings
Diego N. Barbato
Information forwarded
to
bug-guix <at> gnu.org
:
bug#29881
; Package
guix
.
(Thu, 28 Dec 2017 22:31:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-guix <at> gnu.org
:
bug#29881
; Package
guix
.
(Thu, 28 Dec 2017 23:05:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 29881 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Leo Famulari <leo <at> famulari.name> writes:
> Can you send your config.scm?
>
> Without it, it's hard to know if there is a problem with your config.scm or the Guix mapper-devices code.
>
As requested here is my config.scm. Although I doubt there is a problem
with it since it works with commit
de2032b912ede1756290e7ca9f7af7e9b72627eb and the mapped-devices
declaration is the same as in the manual (except for the target and the
uuid).
[config.scm (application/octet-stream, attachment)]
Information forwarded
to
bug-guix <at> gnu.org
:
bug#29881
; Package
guix
.
(Fri, 29 Dec 2017 13:42:02 GMT)
Full text and
rfc822 format available.
Message #17 received at 29881 <at> debbugs.gnu.org (full text, mbox):
Hi Diego,
Diego Nicola Barbato <dnbarbato <at> posteo.de> skribis:
> When running `guix system reconfigure /etc/config.scm' as root I get the
> following error:
>
> guix system: error: failed to load '/etc/config.scm':
> /etc/config.scm:24:9: /etc/config.scm:24:9: In procedure allocate-struct: Wrong type argument in position 2: 3
I’m afraid you’ll have to “rm -rf ~/.cache/guile/ccache” (Guile’s
auto-compilation cache) to work around
e2721a05e7d778bdf845b7cb7a42fd9f76095b69.
Can you confirm?
This commit adapts to a change in what ‘%fresh-auto-compile’ does in
Guile 2.2.3, which turned out to be wrong.
Thanks,
Ludo’.
Information forwarded
to
bug-guix <at> gnu.org
:
bug#29881
; Package
guix
.
(Fri, 29 Dec 2017 17:34:02 GMT)
Full text and
rfc822 format available.
Message #20 received at 29881 <at> debbugs.gnu.org (full text, mbox):
ludo <at> gnu.org (Ludovic Courtès) writes:
> Diego Nicola Barbato <dnbarbato <at> posteo.de> skribis:
>
>> When running `guix system reconfigure /etc/config.scm' as root I get the
>> following error:
>>
>> guix system: error: failed to load '/etc/config.scm':
>> /etc/config.scm:24:9: /etc/config.scm:24:9: In procedure allocate-struct: Wrong type argument in position 2: 3
>
> I’m afraid you’ll have to “rm -rf ~/.cache/guile/ccache” (Guile’s
> auto-compilation cache) to work around
> e2721a05e7d778bdf845b7cb7a42fd9f76095b69.
FYI, I also encountered the same issue recently, and indeed I needed to
clear the auto-compilation cache for my system configuration file, for
both my normal user and root.
It makes me wonder if "guix system" should force a fresh compilation of
that file by default.
Mark
Information forwarded
to
bug-guix <at> gnu.org
:
bug#29881
; Package
guix
.
(Sat, 30 Dec 2017 00:21:02 GMT)
Full text and
rfc822 format available.
Message #23 received at 29881 <at> debbugs.gnu.org (full text, mbox):
Mark H Weaver <mhw <at> netris.org> skribis:
> ludo <at> gnu.org (Ludovic Courtès) writes:
>
>> Diego Nicola Barbato <dnbarbato <at> posteo.de> skribis:
>>
>>> When running `guix system reconfigure /etc/config.scm' as root I get the
>>> following error:
>>>
>>> guix system: error: failed to load '/etc/config.scm':
>>> /etc/config.scm:24:9: /etc/config.scm:24:9: In procedure allocate-struct: Wrong type argument in position 2: 3
>>
>> I’m afraid you’ll have to “rm -rf ~/.cache/guile/ccache” (Guile’s
>> auto-compilation cache) to work around
>> e2721a05e7d778bdf845b7cb7a42fd9f76095b69.
>
> FYI, I also encountered the same issue recently, and indeed I needed to
> clear the auto-compilation cache for my system configuration file, for
> both my normal user and root.
>
> It makes me wonder if "guix system" should force a fresh compilation of
> that file by default.
It should, as it used to do, but in 2.2.3 I pushed a “fix” for
‘%fresh-auto-compile’ that turned out to be misguided: it would now
force a fresh-auto-compile of everything, including files for which we
have a .go not in ~/.cache but in some other $GUILE_LOAD_COMPILED_PATH
entry.
See
<https://git.savannah.gnu.org/cgit/guile.git/commit/?h=stable-2.2&id=83d4c4d622b406ec0bc9d8139ec8182fa72b5720>.
I think we should revert it and publish 2.2.4 soon.
Thoughts?
Ludo’.
Information forwarded
to
bug-guix <at> gnu.org
:
bug#29881
; Package
guix
.
(Sat, 30 Dec 2017 13:56:02 GMT)
Full text and
rfc822 format available.
Message #26 received at 29881 <at> debbugs.gnu.org (full text, mbox):
Hello Ludo,
ludo <at> gnu.org (Ludovic Courtès) writes:
> I’m afraid you’ll have to “rm -rf ~/.cache/guile/ccache” (Guile’s
> auto-compilation cache) to work around
> e2721a05e7d778bdf845b7cb7a42fd9f76095b69.
>
> Can you confirm?
Yes, running `rm -rf ~/.cache/guile/ccache' fixes the issue.
Thanks.
Diego
Information forwarded
to
bug-guix <at> gnu.org
:
bug#29881
; Package
guix
.
(Sun, 07 Jan 2018 02:26:02 GMT)
Full text and
rfc822 format available.
Message #29 received at 29881 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On Fri, Dec 29, 2017 at 14:41:21 +0100, Ludovic Courtès wrote:
> Diego Nicola Barbato <dnbarbato <at> posteo.de> skribis:
>
>> When running `guix system reconfigure /etc/config.scm' as root I get the
>> following error:
>>
>> guix system: error: failed to load '/etc/config.scm':
>> /etc/config.scm:24:9: /etc/config.scm:24:9: In procedure allocate-struct: Wrong type argument in position 2: 3
>
> I’m afraid you’ll have to “rm -rf ~/.cache/guile/ccache” (Guile’s
> auto-compilation cache) to work around
> e2721a05e7d778bdf845b7cb7a42fd9f76095b69.
>
> Can you confirm?
I just ran into this, and clearing ~/.cache/guile/ccache did indeed fix
it. Thanks.
--
Mike Gerwitz
Free Software Hacker+Activist | GNU Maintainer & Volunteer
GPG: D6E9 B930 028A 6C38 F43B 2388 FEF6 3574 5E6F 6D05
https://mikegerwitz.com
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
bug-guix <at> gnu.org
:
bug#29881
; Package
guix
.
(Wed, 10 Jan 2018 21:49:02 GMT)
Full text and
rfc822 format available.
Message #32 received at 29881 <at> debbugs.gnu.org (full text, mbox):
ludo <at> gnu.org (Ludovic Courtès) writes:
> Diego Nicola Barbato <dnbarbato <at> posteo.de> skribis:
>
>> When running `guix system reconfigure /etc/config.scm' as root I get the
>> following error:
>>
>> guix system: error: failed to load '/etc/config.scm':
>> /etc/config.scm:24:9: /etc/config.scm:24:9: In procedure allocate-struct: Wrong type argument in position 2: 3
>
> I’m afraid you’ll have to “rm -rf ~/.cache/guile/ccache” (Guile’s
> auto-compilation cache) to work around
> e2721a05e7d778bdf845b7cb7a42fd9f76095b69.
FYI, more recently there has been another change that caused "guix
system build" to fail for me, and once again it was fixed by clearing
the auto-compilation cache for my system configuration.
Here's the error I got:
--8<---------------cut here---------------start------------->8---
mhw <at> jojen ~$ (guix system build /etc/config-sddm.scm --keep-going --keep-failed --no-grafts; guix system build /etc/config-sddm.scm --keep-going --keep-failed; guix package -m mhw-manifest.scm --keep-going --keep-failed)
Backtrace:
In guix/store.scm:
1443:24 19 (run-with-store _ _ #:guile-for-build _ #:system _ # _)
In guix/scripts/system.scm:
1031:13 18 (_ _)
736:18 17 (perform-action build #<<operating-system> kernel: #<p…> …)
In gnu/system.scm:
813:19 16 (operating-system-derivation _ #:container? _)
In gnu/services.scm:
697:26 15 (loop #<<service> type: #<service-type system 1ac8dc0> …>)
In srfi/srfi-1.scm:
592:17 14 (map1 (#<<service> type: #<service-type profile 1ac8…> …))
In gnu/services.scm:
697:26 13 (loop #<<service> type: #<service-type profile 1ac8b40>…>)
In srfi/srfi-1.scm:
592:17 12 (map1 (#<<service> type: #<service-type shepherd-roo…> …))
In gnu/services.scm:
698:26 11 (loop #<<service> type: #<service-type shepherd-root 1a…>)
In srfi/srfi-1.scm:
592:29 10 (map1 (#<<service> type: #<service-type file-systems…> …))
592:29 9 (map1 (#<<service> type: #<service-type user-file-sy…> …))
592:29 8 (map1 (#<<service> type: #<service-type root-file-sy…> …))
592:29 7 (map1 (#<<service> type: #<service-type user-process…> …))
592:29 6 (map1 (#<<service> type: #<service-type host-name 1b…> …))
592:29 5 (map1 (#<<service> type: #<service-type account 1ac8…> …))
592:29 4 (map1 (#<<service> type: #<service-type udev 1bb0780…> …))
592:29 3 (map1 (#<<service> type: #<service-type nscd 1bb0960…> …))
592:17 2 (map1 (#<<service> type: #<service-type guix 1bb0870…> …))
In gnu/services/base.scm:
1471:43 1 (guix-shepherd-service _)
In unknown file:
0 (symbol->string ("--gc-keep-derivations=yes" "--gc-ke…"))
ERROR: In procedure symbol->string:
ERROR: In procedure symbol->string: Wrong type argument in position 1 (expecting symbol): ("--gc-keep-derivations=yes" "--gc-keep-outputs=yes")
Backtrace:
In guix/store.scm:
1443:24 19 (run-with-store _ _ #:guile-for-build _ #:system _ # _)
In guix/scripts/system.scm:
1031:13 18 (_ _)
736:18 17 (perform-action build #<<operating-system> kernel: #<p…> …)
In gnu/system.scm:
813:19 16 (operating-system-derivation _ #:container? _)
In gnu/services.scm:
697:26 15 (loop #<<service> type: #<service-type system 254ffa0> …>)
In srfi/srfi-1.scm:
592:17 14 (map1 (#<<service> type: #<service-type profile 254f…> …))
In gnu/services.scm:
697:26 13 (loop #<<service> type: #<service-type profile 254fc80>…>)
In srfi/srfi-1.scm:
592:17 12 (map1 (#<<service> type: #<service-type shepherd-roo…> …))
In gnu/services.scm:
698:26 11 (loop #<<service> type: #<service-type shepherd-root 25…>)
In srfi/srfi-1.scm:
592:29 10 (map1 (#<<service> type: #<service-type file-systems…> …))
592:29 9 (map1 (#<<service> type: #<service-type user-file-sy…> …))
592:29 8 (map1 (#<<service> type: #<service-type root-file-sy…> …))
592:29 7 (map1 (#<<service> type: #<service-type user-process…> …))
592:29 6 (map1 (#<<service> type: #<service-type host-name 26…> …))
592:29 5 (map1 (#<<service> type: #<service-type account 254f…> …))
592:29 4 (map1 (#<<service> type: #<service-type udev 2653820…> …))
592:29 3 (map1 (#<<service> type: #<service-type nscd 2653a00…> …))
592:17 2 (map1 (#<<service> type: #<service-type guix 2653910…> …))
In gnu/services/base.scm:
1471:43 1 (guix-shepherd-service _)
In unknown file:
0 (symbol->string ("--gc-keep-derivations=yes" "--gc-ke…"))
ERROR: In procedure symbol->string:
ERROR: In procedure symbol->string: Wrong type argument in position 1 (expecting symbol): ("--gc-keep-derivations=yes" "--gc-keep-outputs=yes")
--8<---------------cut here---------------end--------------->8---
and the relevant excerpt from my system configuration:
--8<---------------cut here---------------start------------->8---
(modify-services (remove (lambda (svc)
(eq? (service-kind svc)
wicd-service-type))
%base-services)
(guix-service-type config =>
(guix-configuration
(inherit config)
(use-substitutes? #f)
(authorized-keys '())
(substitute-urls '())
(extra-options '("--gc-keep-derivations=yes"
"--gc-keep-outputs=yes")))))
--8<---------------cut here---------------end--------------->8---
I guess that maybe the 'guix-configuration' record was changed, but I
haven't taken the time to find the commit that broke my cached
etc/config-sddm.go.
Mark
Changed bug title to 'Disabled fresh-auto-compile leads to ABI breakage in user config files' from 'guix system reconfigure fails if config.scm contains LUKS mapped-devices'
Request was from
ludo <at> gnu.org (Ludovic Courtès)
to
control <at> debbugs.gnu.org
.
(Fri, 12 Jan 2018 21:54:02 GMT)
Full text and
rfc822 format available.
Severity set to 'important' from 'normal'
Request was from
ludo <at> gnu.org (Ludovic Courtès)
to
control <at> debbugs.gnu.org
.
(Fri, 12 Jan 2018 21:54:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-guix <at> gnu.org
:
bug#29881
; Package
guix
.
(Mon, 15 Jan 2018 22:34:02 GMT)
Full text and
rfc822 format available.
Message #39 received at 29881 <at> debbugs.gnu.org (full text, mbox):
Hi Mark,
Mark H Weaver <mhw <at> netris.org> skribis:
> ludo <at> gnu.org (Ludovic Courtès) writes:
>
>> Diego Nicola Barbato <dnbarbato <at> posteo.de> skribis:
>>
>>> When running `guix system reconfigure /etc/config.scm' as root I get the
>>> following error:
>>>
>>> guix system: error: failed to load '/etc/config.scm':
>>> /etc/config.scm:24:9: /etc/config.scm:24:9: In procedure allocate-struct: Wrong type argument in position 2: 3
>>
>> I’m afraid you’ll have to “rm -rf ~/.cache/guile/ccache” (Guile’s
>> auto-compilation cache) to work around
>> e2721a05e7d778bdf845b7cb7a42fd9f76095b69.
>
> FYI, more recently there has been another change that caused "guix
> system build" to fail for me, and once again it was fixed by clearing
> the auto-compilation cache for my system configuration.
For now, in commit 92423868bc451600f8f3d93b638091d12b14b7aa, I’ve
arranged so that auto-compilation is turned off for Guile 2.2.3 only.
At the same time, I reverted the offending change in Guile, and
hopefully we’ll release 2.2.4 shortly:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=29226#25
I’m not sure we can do much better for 2.2.3, or perhaps we should
always use (compile-file file #:to 'value) in ‘load*’?
Thanks,
Ludo’.
Reply sent
to
ludo <at> gnu.org (Ludovic Courtès)
:
You have taken responsibility.
(Mon, 05 Mar 2018 09:59:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Diego Nicola Barbato <dnbarbato <at> posteo.de>
:
bug acknowledged by developer.
(Mon, 05 Mar 2018 09:59:02 GMT)
Full text and
rfc822 format available.
Message #44 received at 29881-done <at> debbugs.gnu.org (full text, mbox):
ludo <at> gnu.org (Ludovic Courtès) skribis:
> Mark H Weaver <mhw <at> netris.org> skribis:
>
>> ludo <at> gnu.org (Ludovic Courtès) writes:
>>
>>> Diego Nicola Barbato <dnbarbato <at> posteo.de> skribis:
>>>
>>>> When running `guix system reconfigure /etc/config.scm' as root I get the
>>>> following error:
>>>>
>>>> guix system: error: failed to load '/etc/config.scm':
>>>> /etc/config.scm:24:9: /etc/config.scm:24:9: In procedure allocate-struct: Wrong type argument in position 2: 3
>>>
>>> I’m afraid you’ll have to “rm -rf ~/.cache/guile/ccache” (Guile’s
>>> auto-compilation cache) to work around
>>> e2721a05e7d778bdf845b7cb7a42fd9f76095b69.
>>
>> FYI, more recently there has been another change that caused "guix
>> system build" to fail for me, and once again it was fixed by clearing
>> the auto-compilation cache for my system configuration.
>
> For now, in commit 92423868bc451600f8f3d93b638091d12b14b7aa, I’ve
> arranged so that auto-compilation is turned off for Guile 2.2.3 only.
[...]
> I’m not sure we can do much better for 2.2.3, or perhaps we should
> always use (compile-file file #:to 'value) in ‘load*’?
In commit f44c7aaccd1942b8bf7916e4c8bb0f8f1abfcb58 I added an explicit
‘compile-file’ call to update the cached .go file for the user’s config,
when on 2.2.3.
This should solve the problem most of the time. The only remaining
issue is if you’re using 2.2.3 and your config spans several modules:
only the main .scm file is rebuilt, so there could be ABI issues in the
other modules.
I’m closing the bug now.
Ludo’.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Mon, 02 Apr 2018 11:24:05 GMT)
Full text and
rfc822 format available.
This bug report was last modified 6 years and 26 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.