[core-updates] Coreutils test failures on emulated ARMv7/AArch64

  • Done
  • quality assurance status badge
Details
One participant
  • Ludovic Courtès
Owner
unassigned
Submitted by
Ludovic Courtès
Severity
normal
L
L
Ludovic Courtès wrote on 9 Jul 2021 11:28
(address . bug-guix@gnu.org)
87fswnj0ph.fsf@inria.fr
Coreutils test suite fails on emulated hardware because argv[0] is an
absolute file name whereas the test suite expects it to be a basename:

Toggle snippet (35 lines)
@ build-started /gnu/store/hz81434lpq9fgsmngcad9abj72qfzqmy-coreutils-8.32.drv - aarch64-linux /var/log/guix/drvs/hz//81434lpq9fgsmngcad9abj72qfzqmy-coreutils-8.32.drv.bz2
108927

[...]

--- exp 2021-07-09 03:15:37.591279933 +0000
+++ err 2021-07-09 03:15:37.631279816 +0000
@@ -1,4 +1,4 @@
-tail: cannot fstat 'standard input'
-tail: error reading 'standard input'
-tail: no files remaining
-tail: -
+/tmp/guix-build-coreutils-8.32.drv-0/coreutils-8.32/./src/tail: cannot fstat 'standard input'
+/tmp/guix-build-coreutils-8.32.drv-0/coreutils-8.32/./src/tail: error reading 'standard input'
+/tmp/guix-build-coreutils-8.32.drv-0/coreutils-8.32/./src/tail: no files remaining
+/tmp/guix-build-coreutils-8.32.drv-0/coreutils-8.32/./src/tail: -
+ fail=1
+ tty -s
./tests/tail-2/follow-stdin.sh: line 72: /dev/tty: No such device or address
+ Exit 1
+ set +e
+ exit 1
+ exit 1
+ remove_tmp_
+ __st=1
+ cleanup_
+ kill 23630
+ test '' = yes
+ cd /tmp/guix-build-coreutils-8.32.drv-0/coreutils-8.32
+ chmod -R u+rwx /tmp/guix-build-coreutils-8.32.drv-0/coreutils-8.32/gt-follow-stdin.sh.5esc
+ rm -rf /tmp/guix-build-coreutils-8.32.drv-0/coreutils-8.32/gt-follow-stdin.sh.5esc
+ exit 1
FAIL tests/tail-2/follow-stdin.sh (exit status: 1)

To be continued…

Ludo’.
L
L
Ludovic Courtès wrote on 10 Jul 2021 01:37
(address . 49485@debbugs.gnu.org)
87czrrf497.fsf@gnu.org
Ludovic Courtès <ludo@gnu.org> skribis:

Toggle quote (4 lines)
> Coreutils test suite fails on emulated hardware because argv[0] is an
> absolute file name whereas the test suite expects it to be a basename:

[...]

Toggle quote (9 lines)
> -tail: cannot fstat 'standard input'
> -tail: error reading 'standard input'
> -tail: no files remaining
> -tail: -
> +/tmp/guix-build-coreutils-8.32.drv-0/coreutils-8.32/./src/tail: cannot fstat 'standard input'
> +/tmp/guix-build-coreutils-8.32.drv-0/coreutils-8.32/./src/tail: error reading 'standard input'
> +/tmp/guix-build-coreutils-8.32.drv-0/coreutils-8.32/./src/tail: no files remaining
> +/tmp/guix-build-coreutils-8.32.drv-0/coreutils-8.32/./src/tail: -

Reading ‘binfmt-misc.rst’ in the Linux Documentation/ directory, this is
expected: by default, when using binfmt_misc, argv[0] is replaced by the
absolute file name of the executable.

The “P” flag fixes that and QEMU 6.0.0 does the right thing when that
flag is used, so commit 2ea2bca1ddb1e3ba9d843ff7544c22925de7f6d7 adds
the “P” flag by default.

Then I reconfigured the build nodes behind ci.guix with:

guix time-machine --commit=2ea2bca1ddb1e3ba9d843ff7544c22925de7f6d7 \
-- deploy berlin-nodes.scm -L modules

followed by:

for i in $(seq 159 2 185); do ssh root@141.80.167.$i herd restart qemu-binfmt; done

So normally, builds at ci.guix corresponding to core-updates commit
c823b958256ba1db6cf896400fae218e4261266e and later should be done with
the “P” flag.

Ludo’.
L
L
Ludovic Courtès wrote on 10 Jul 2021 15:07
(address . 49485-done@debbugs.gnu.org)
87lf6ee2r1.fsf@gnu.org
Hi!

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

Toggle quote (8 lines)
> followed by:
>
> for i in $(seq 159 2 185); do ssh root@141.80.167.$i herd restart qemu-binfmt; done
>
> So normally, builds at ci.guix corresponding to core-updates commit
> c823b958256ba1db6cf896400fae218e4261266e and later should be done with
> the “P” flag.

It was not that easy… I had to reboot the machines because “P” flag
handling in QEMU requires Linux 5.12.0¹ and those machines were running
5.10 (qemu binfmt with “P” would silently fail, for some reason).

Anyway, it eventually succeeded, yay!


Ludo’.

Closed
?