GNU bug report logs - #75205
guix package test failure on i686-linux (kexec-load-file test)

Previous Next

Package: guix;

Reported by: Dariqq <dariqq <at> posteo.net>

Date: Mon, 30 Dec 2024 16:56: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 75205 in the body.
You can then email your comments to 75205 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#75205; Package guix. (Mon, 30 Dec 2024 16:56:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Dariqq <dariqq <at> posteo.net>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Mon, 30 Dec 2024 16:56:02 GMT) Full text and rfc822 format available.

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

From: Dariqq <dariqq <at> posteo.net>
To: bug-guix <at> gnu.org
Subject: guix package test failure on i686-linux (kexec-load-file test)
Date: Mon, 30 Dec 2024 16:55:17 +0000
Hello,

The guix package is failing the newly added kexec-load-file syscall test 
on i686-linux:

From https://ci.guix.gnu.org/build/7774049/details:

test-name: kexec-load-file
location: 
/tmp/guix-build-guix-1.4.0-31.121e96d.drv-0/source/tests/syscalls.scm:688
source:
+ (test-equal
+   "kexec-load-file"
+   EPERM
+   (catch 'system-error
+          (lambda ()
+            (let ((fd1 (open-fdes "/dev/null" O_RDONLY))
+                  (fd2 (open-fdes "/dev/null" O_RDONLY)))
+              (kexec-load-file fd1 fd2 "gnu.repl=yes")))
+          (lambda args (system-error-errno args))))
expected-value: 1
actual-value: 14
result: FAIL






Information forwarded to bug-guix <at> gnu.org:
bug#75205; Package guix. (Wed, 01 Jan 2025 04:18:01 GMT) Full text and rfc822 format available.

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

From: Ian Eure <ian <at> retrospec.tv>
To: 75205 <at> debbugs.gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>
Subject: Re: guix package test failure on i686-linux (kexec-load-file test)
Date: Tue, 31 Dec 2024 20:17:09 -0800
This is failing for me on aarch64-linux also:

   test-name: kexec-load-file
   location: 
   /tmp/guix-build-guix-1.4.0-31.121e96d.drv-0/source/tests/syscalls.scm:688
   source:
   + (test-equal
   +   "kexec-load-file"
   +   EPERM
   +   (catch 'system-error
   +          (lambda ()
   +            (let ((fd1 (open-fdes "/dev/null" O_RDONLY))
   +                  (fd2 (open-fdes "/dev/null" O_RDONLY)))
   +              (kexec-load-file fd1 fd2 "gnu.repl=yes")))
   +          (lambda args (system-error-errno args))))
   expected-value: 1
   actual-value: 38
   result: FAIL

If I downgrade to commit 96cd163c14e68c66c6a4cf0b18261fc454f8c1ba, 
guix tests pass again -- the failing test was added in the next 
commit.  I’m not sure what the issue here, it seems like that 
syscall shouldn’t be arch-dependent, and the errnos in the 
failures are unhelpful.  38 is ERANGE, 14 is EFAULT, neither of 
those seem applicable here.  EPERM is 1, and 38 doesn’t have its 
LSB set, so it can’t be a bitmask.

I’m encountering the issue using Guix as a foreign package manager 
on top of Debian 12 "bookworm" in a VM.  Perhaps there’s an 
implicit dependency on the host system’s kernel in the test, which 
Debian’s fails to meet.

Ludo’, any thoughts?

 -- Ian




Information forwarded to bug-guix <at> gnu.org:
bug#75205; Package guix. (Sat, 04 Jan 2025 18:12:01 GMT) Full text and rfc822 format available.

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

From: Ludovic Courtès <ludo <at> gnu.org>
To: Ian Eure <ian <at> retrospec.tv>
Cc: 75205 <at> debbugs.gnu.org
Subject: Re: guix package test failure on i686-linux (kexec-load-file test)
Date: Sat, 04 Jan 2025 19:11:35 +0100
Hello,

Ian Eure <ian <at> retrospec.tv> skribis:

> This is failing for me on aarch64-linux also:
>
>    test-name: kexec-load-file
>    location:
>    /tmp/guix-build-guix-1.4.0-31.121e96d.drv-0/source/tests/syscalls.scm:688
>    source:
>    + (test-equal
>    +   "kexec-load-file"
>    +   EPERM
>    +   (catch 'system-error
>    +          (lambda ()
>    +            (let ((fd1 (open-fdes "/dev/null" O_RDONLY))
>    +                  (fd2 (open-fdes "/dev/null" O_RDONLY)))
>    +              (kexec-load-file fd1 fd2 "gnu.repl=yes")))
>    +          (lambda args (system-error-errno args))))
>    expected-value: 1
>    actual-value: 38
>    result: FAIL

Could you strace it, to see if strace decodes it are ‘kexec_file_load’?
For example like this:

  ./pre-inst-env strace -e kexec_file_load \
    guile -c '(use-modules (guix build syscalls)) (kexec-load-file (open-fdes "/dev/null" O_RDONLY) (open-fdes "/dev/null" O_RDONLY) "")'

38 is ENOSYS (“Function not implemented”), not ERANGE.  This could mean
that kexec support is missing in this kernel.

Thanks,
Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#75205; Package guix. (Mon, 06 Jan 2025 09:09:05 GMT) Full text and rfc822 format available.

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

From: boogs <boogs <at> venatores.group>
To: 75205 <at> debbugs.gnu.org
Subject: guix package test failure on i686-linux (kexec-load-file test)
Date: Sun, 05 Jan 2025 11:31:02 -0500
Forwarding my reply from this other relevant thread[1]:

> Hi,
> It looks like some people[1,2] including myself are running into an issue where the `guix system reconfigure` command fails, presumably because `KEXEC_FILE_DEBUG` is not supported in older kernel configurations. 
>
> The output of reconfiguring my system is the same as Simen's[2] ending in:
>
> ```
> To complete the upgrade, run 'herd restart SERVICE' to stop,
> upgrade, and restart each service that was not automatically restarted.
> Run 'herd status' to view the list of services on your system.
> WARNING: (guile-user): imported module (guix build utils) overrides core binding `delete'
> guix system: error: kexec-load-file: Invalid argument
> ```
>
> My system runs a custom kernel configuration that I created via `make menuconfig` in the kernel repo. I suspect the issue lies here:
>
> ```
> (define (kexec-loading-program os)
>   "Return a program that calls 'kexec_file_load' to allow rebooting into OS
> via 'kexec'."
>   (let ((root-device (file-system-device
>                       (operating-system-root-file-system os))))
>     (program-file
>      "kexec-load-system.scm"
>      (with-imported-modules '((guix build syscalls))
>        #~(begin
>            (use-modules (guix build syscalls))

>            (let ((kernel (open-fdes #$(operating-system-kernel-file os)
>                                     O_RDONLY))
>                  (initrd (open-fdes #$(operating-system-initrd-file os)
>                                     O_RDONLY)))
>              (kexec-load-file kernel initrd
>                               (string-join
>                                (list #$@(operating-system-kernel-arguments
>                                          os root-device)))
>                               KEXEC_FILE_DEBUG)))))))
> ```
>
> This is the relevant snippet from my kernel configuration: 
>
> ```
> #
> # Kexec and crash features
> #
> CONFIG_CRASH_CORE=y
> CONFIG_KEXEC_CORE=y
> CONFIG_KEXEC=y
> CONFIG_KEXEC_FILE=y
> CONFIG_KEXEC_JUMP=y
> CONFIG_CRASH_DUMP=y
> CONFIG_CRASH_HOTPLUG=y
> CONFIG_CRASH_MAX_MEMORY_RANGES=8192
> # end of Kexec and crash features
> # end of General setup
> ```
>
> [1] https://issues.guix.gnu.org/75320
> [2] https://issues.guix.gnu.org/75211

[1] https://issues.guix.gnu.org/75027


-- 
Boogs




Severity set to 'important' from 'normal' Request was from Ludovic Courtès <ludo <at> gnu.org> to control <at> debbugs.gnu.org. (Mon, 06 Jan 2025 10:51:01 GMT) Full text and rfc822 format available.

Information forwarded to bug-guix <at> gnu.org:
bug#75205; Package guix. (Mon, 06 Jan 2025 13:21:02 GMT) Full text and rfc822 format available.

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

From: Ludovic Courtès <ludo <at> gnu.org>
To: Ian Eure <ian <at> retrospec.tv>
Cc: 75205 <at> debbugs.gnu.org
Subject: Re: bug#75205: guix package test failure on i686-linux
 (kexec-load-file test)
Date: Mon, 06 Jan 2025 14:20:42 +0100
See <https://issues.guix.gnu.org/75402>.




Information forwarded to bug-guix <at> gnu.org:
bug#75205; Package guix. (Tue, 11 Feb 2025 08:27:02 GMT) Full text and rfc822 format available.

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

From: Dariqq <dariqq <at> posteo.net>
To: Ludovic Courtès <ludo <at> gnu.org>, 75205 <at> debbugs.gnu.org
Subject: Re: [PATCH 2/3] syscalls: Remove wrong syscall ID for ‘kexec_load_file’ on i686.
Date: Tue, 11 Feb 2025 08:25:38 +0000
Hi Ludo,

Can #75205 be closed now? With the update to guix in 
d7157cca1053d82041e4fc294f9a5f13e2cf612b the package builds again for i686:

I built it myself and also ci.g.g.o was successful (taking 7000 seconds!):
https://ci.guix.gnu.org/build/9193966/details

Thanks for the fix.

On 06.01.25 13:58, Ludovic Courtès wrote:
> Fixes <https://issues.guix.gnu.org/75205>.
> 
> * guix/build/syscalls.scm (kexec-load-file): Remove syscall ID for i686.
> * tests/syscalls.scm ("kexec-load-file"): Accept ENOSYS in addition to
> EPERM.
> 






Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Fri, 21 Feb 2025 09:52:04 GMT) Full text and rfc822 format available.

Notification sent to Dariqq <dariqq <at> posteo.net>:
bug acknowledged by developer. (Fri, 21 Feb 2025 09:52:04 GMT) Full text and rfc822 format available.

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

From: Ludovic Courtès <ludo <at> gnu.org>
To: Dariqq <dariqq <at> posteo.net>
Cc: 75205-done <at> debbugs.gnu.org
Subject: Re: [PATCH 2/3] syscalls: Remove wrong syscall ID for
 ‘kexec_load_file’ on i686.
Date: Fri, 21 Feb 2025 10:51:41 +0100
Hi,

Dariqq <dariqq <at> posteo.net> skribis:

> Can #75205 be closed now? With the update to guix in
> d7157cca1053d82041e4fc294f9a5f13e2cf612b the package builds again for
> i686:

Yes, done!

Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 21 Mar 2025 11:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 106 days ago.

Previous Next


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