diff mbox series

[bug#49933,core-updates-frozen] gnu: util-linux: Disable unreliable ioctl_ns test

Message ID 073f4c2a0ec6bae374e65dd3abb8fdba2e94d749.camel@telenet.be
State Accepted
Headers show
Series [bug#49933,core-updates-frozen] gnu: util-linux: Disable unreliable ioctl_ns test | expand

Checks

Context Check Description
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

M Aug. 8, 2021, 9:06 a.m. UTC
Hi,

> Thanks! I can confirm this behavior also happens on my machine, running
> Guix on a foreign distro (Ubuntu, with kernel 5.11.0-25-generic). I ran
> into the problem while trying to build ‘bootstrap-tarballs’, and with
> your patch it works.
> 
> Just one suggestion: what about only deleting the problematic test if
> ‘%current-system’ is "i686-linux"?

Maybe it's required on other arches as well (32-bit arches that have a
64-bit counterpart maybe?), but that seems reasonable (more arches
can be added later).  A revised patch is attached.

Greetings,
Maxime.

Comments

M Aug. 8, 2021, 10:56 a.m. UTC | #1
Maxime Devos schreef op zo 08-08-2021 om 11:06 [+0200]:
> +                              ;; The lsns tests can fail due to ioctl(_, NS_GET_USERNS)
> +                              ;; returning ENOTTY, indicating this kernel does not
> +                              ;; support user namespaces.  Curiously, this test can fail
> +                              ;; on i686 even if the same test passes on x86_64 on the
> +                              ;; same machine.  See <https://issues.guix.gnu.org/49933>;.

This happend with a 5.10.47 kernel.  According to ioctl_ns(2), NS_GET_USERNS
is available since Linux 4.9.  I wonder if this happens on i686 kernels as well,
and if some extra things needs to be enabled in the kernel configuration.

Greetings,
Maxime.
Thiago Jung Bauermann Aug. 9, 2021, 4:09 p.m. UTC | #2
Hello Maxime,

Thank you for sending a v2. It looks good to me.

Em domingo, 8 de agosto de 2021, às 07:56:23 -03, Maxime Devos escreveu:
> Maxime Devos schreef op zo 08-08-2021 om 11:06 [+0200]:
> > +                              ;; The lsns tests can fail due to
> > ioctl(_, NS_GET_USERNS) +                              ;; returning
> > ENOTTY, indicating this kernel does not +                             
> > ;; support user namespaces.  Curiously, this test can fail +          
> >                    ;; on i686 even if the same test passes on x86_64
> > on the +                              ;; same machine.  See
> > <https://issues.guix.gnu.org/49933>;.
> This happend with a 5.10.47 kernel.  According to ioctl_ns(2),
> NS_GET_USERNS is available since Linux 4.9.  I wonder if this happens on
> i686 kernels as well, and if some extra things needs to be enabled in
> the kernel configuration.

Out of curiosity, I created an i686 KVM guest running Guix System, and the 
test passes there, on the core-updates-frozen branch. So it seems to be an 
issue with the x86_64 kernel running 32-bit binaries.

I also noticed that the ioctl_ns test is new in util-linux. It was added in 
version 2.37.
Mathieu Othacehe Aug. 15, 2021, 10:16 a.m. UTC | #3
Hey,

> * gnu/packages/linux.scm
>   (util-linux)[arguments]<#:phases>{delete-lsns-test}: New phase.

Pushed, thanks!

Mathieu
diff mbox series

Patch

From ba4be4629773633ea873db824ff0743a5d0dda8a Mon Sep 17 00:00:00 2001
From: Maxime Devos <maximedevos@telenet.be>
Date: Sat, 7 Aug 2021 23:41:10 +0200
Subject: [PATCH core-updates-frozen v2] gnu: util-linux: Disable unreliable
 ioctl_ns test on IA-32.

* gnu/packages/linux.scm
  (util-linux)[arguments]<#:phases>{delete-lsns-test}: New phase.
---
 gnu/packages/linux.scm | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index a5fd8ddaee..5690b81bf1 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -53,6 +53,7 @@ 
 ;;; Copyright © 2020 pukkamustard <pukkamustard@posteo.net>
 ;;; Copyright © 2021 B. Wilson <elaexuotee@wilsonb.com>
 ;;; Copyright © 2021 Ivan Gankevich <i.gankevich@spbu.ru>
+;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -1804,6 +1805,16 @@  providing the system administrator with some help in common tasks.")
                          (string-append
                           all "\n"
                           "ts_skip \"setarch tests are unreliable under QEMU\"")))))
+                  ,@(if (target-x86-32?)
+                        `((add-before 'check 'disable-lsns-test
+                            (lambda _
+                              ;; The lsns tests can fail due to ioctl(_, NS_GET_USERNS)
+                              ;; returning ENOTTY, indicating this kernel does not
+                              ;; support user namespaces.  Curiously, this test can fail
+                              ;; on i686 even if the same test passes on x86_64 on the
+                              ;; same machine.  See <https://issues.guix.gnu.org/49933>.
+                              (delete-file "tests/ts/lsns/ioctl_ns"))))
+                        '())
                   (add-after 'install 'move-static-libraries
                     (lambda* (#:key outputs #:allow-other-keys)
                       (let ((lib    (assoc-ref outputs "lib"))

base-commit: 944ba4237f4c0ccab1bc62a23a31f577ce1878e5
-- 
2.32.0