all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#75205: guix package test failure on i686-linux (kexec-load-file test)
@ 2024-12-30 16:55 Dariqq
  2025-01-01  4:17 ` Ian Eure
  2025-01-05 16:31 ` boogs via Bug reports for GNU Guix
  0 siblings, 2 replies; 5+ messages in thread
From: Dariqq @ 2024-12-30 16:55 UTC (permalink / raw)
  To: 75205

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






^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#75205: guix package test failure on i686-linux (kexec-load-file test)
  2024-12-30 16:55 bug#75205: guix package test failure on i686-linux (kexec-load-file test) Dariqq
@ 2025-01-01  4:17 ` Ian Eure
  2025-01-04 18:11   ` Ludovic Courtès
  2025-01-05 16:31 ` boogs via Bug reports for GNU Guix
  1 sibling, 1 reply; 5+ messages in thread
From: Ian Eure @ 2025-01-01  4:17 UTC (permalink / raw)
  To: 75205; +Cc: Ludovic Courtès

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




^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#75205: guix package test failure on i686-linux (kexec-load-file test)
  2025-01-01  4:17 ` Ian Eure
@ 2025-01-04 18:11   ` Ludovic Courtès
  2025-01-06 13:20     ` Ludovic Courtès
  0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2025-01-04 18:11 UTC (permalink / raw)
  To: Ian Eure; +Cc: 75205

Hello,

Ian Eure <ian@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’.




^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#75205: guix package test failure on i686-linux (kexec-load-file test)
  2024-12-30 16:55 bug#75205: guix package test failure on i686-linux (kexec-load-file test) Dariqq
  2025-01-01  4:17 ` Ian Eure
@ 2025-01-05 16:31 ` boogs via Bug reports for GNU Guix
  1 sibling, 0 replies; 5+ messages in thread
From: boogs via Bug reports for GNU Guix @ 2025-01-05 16:31 UTC (permalink / raw)
  To: 75205

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




^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#75205: guix package test failure on i686-linux (kexec-load-file test)
  2025-01-04 18:11   ` Ludovic Courtès
@ 2025-01-06 13:20     ` Ludovic Courtès
  0 siblings, 0 replies; 5+ messages in thread
From: Ludovic Courtès @ 2025-01-06 13:20 UTC (permalink / raw)
  To: Ian Eure; +Cc: 75205

See <https://issues.guix.gnu.org/75402>.




^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-01-06 13:21 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-30 16:55 bug#75205: guix package test failure on i686-linux (kexec-load-file test) Dariqq
2025-01-01  4:17 ` Ian Eure
2025-01-04 18:11   ` Ludovic Courtès
2025-01-06 13:20     ` Ludovic Courtès
2025-01-05 16:31 ` boogs via Bug reports for GNU Guix

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.