Subject: Re: bug#71183: elogind tests fail on QEMU riscv64-linux but not native with identical derivations
From: Maxim Cournoyer <[email-masked]>
To: Richard Sent <[email-masked]>
Cc: GNU Debbugs <[email-masked]>, [email-masked]
Date: Tue, 18 Mar 2025 14:45:41 +0900
List-Id: <debbugs-submit.debbugs.gnu.org>

tag 71183 + notabug
quit

Hi Richard,

Richard Sent <[email-masked]> writes:

> Hi Guix!
>
> Building elogind fails due to a failing test on a QEMU riscv64 build:
>
> gibraltar :) guix$ guix describe
> Generation 77	May 24 2024 00:15:41	(current)
>   guix 9901416
>     repository URL: https://git.savannah.gnu.org/git/guix.git
>     branch: master
>     commit: 9901416233867233192b63fde7f616751127b189
> gibraltar :) guix$ guix build elogind --system=riscv64-linux
>
>
> I'll attach the full build log to this message. Here's the brief output:
>
>  85/143 elogind:test / test-mountpoint-util                       FAIL            0.03s   killed by signal 6 SIGABRT
> # snip
> mnt ids of /gnu/store/vaznv17j32jky10bi6942fdfxh7awl67-python-minimal-3.10.7 are 739 (from /proc/self/mountinfo), 0 (from path_get_mnt_id()).
> Assertion 'q = hashmap_get(h, INT_TO_PTR(mnt_id2))' failed at src/test/test-mountpoint-util.c:104, function test_mnt_id(). Aborting.
>
>
> When the build is done natively (thanks for the VisionFive2 image!), it
> succeeds even though the derivation hash is the same.
>
> # QEMU
> gibraltar :( guix$ guix build elogind --no-grafts --derivations --system=riscv64-linux
> /gnu/store/cjbqi2shgn2a99zmwbiqp1kaa7x0zpik-elogind-252.9.drv
> # Native
> root@visionfive2 ~# guix build elogind --no-grafts --derivations
> /gnu/store/cjbqi2shgn2a99zmwbiqp1kaa7x0zpik-elogind-252.9.drv
>
> I tried disabling just that one test, but it seemed to cause another
> failure. I haven't investigated beyond that.

That's not special to elogind; there are quite a few instances where the
emulator behaves differently enough to break tests.  It's interesting,
but it's a QEMU bug, not a Guix bug though.  I encourage you to open the
issue with/engage with upstream QEMU if you have an interest in
resolving it (which would be valuable to Guix as well).

-- 
Thanks,
Maxim