Subject: Re: bug#48156: basic system test broken: qemu-system-x86_64: error while loading shared libraries: libXcursor.so.1: cannot open shared object file: No such file or directory

From: Christopher Baines <[email-masked]>
Date: Wed, 05 May 2021 10:07:32 +0100

Ludovic Courtès <[email-masked]> writes:

> Hi,
>
> Christopher Baines <[email-masked]> skribis:
>
>> This is on commit 1b792e8b5275dc010c53d91062082340431204f2.
>>
>> → make check-system TESTS=basic
>> Compiling Scheme modules...
>> Selected 1 system tests...
>> The following derivation will be built:
>>    /gnu/store/7dyw16iakczr7qg89rb3rgbh443cvwpc-basic.drv
>> building /gnu/store/7dyw16iakczr7qg89rb3rgbh443cvwpc-basic.drv...
>> /gnu/store/13v06bndh09k1db50yndqi7610a9170k-qemu-5.2.0/bin/qemu-system-x86_64: error while loading shared libraries: libXcursor.so.1: cannot open shared object file: No such file or directory
>
> That looks fishy.  I cannot reproduce it like this:
>
> --8<---------------cut here---------------start------------->8---
> $ TESTS=basic guix time-machine --commit=1b792e8b5275dc010c53d91062082340431204f2 -- build -m etc/system-tests.scm
>
> [...]
>
> ;;; (services (file-system-/dev/shm file-system-/sys/firmware/efi/efivars urandom-seed term-tty3 term-tty2 virtual-terminal mcron term-tty4 console-font-tty5 console-font-tty1 user-file-systems user-processes root-file-system console-font-tty2 marionette loopback syslogd nscd term-tty5 root file-system-/dev/pts term-tty6 file-system-/sys/kernel/debug console-font-tty3 guix-daemon term-tty1 user-homes console-font-tty6 sysctl console-font-tty4 term-auto host-name file-systems udev))
> # of expected passes      27
> # of skipped tests        1
> successfully built /gnu/store/q1p7gbpxv37ycisdpl11vi4x86l73lmg-basic.drv
> /gnu/store/2v80zymwawb9cvf9bhdfj87f60nrcpn3-basic
> --8<---------------cut here---------------end--------------->8---
>
> It’s not the same derivation though.
>
> I can’t seem to find
> /gnu/store/7dyw16iakczr7qg89rb3rgbh443cvwpc-basic.drv nor
> /gnu/store/13v06bndh09k1db50yndqi7610a9170k-qemu-5.2.0.  Where do they
> come from?

I've done a bit more digging, the qemu output is grafted, and I'm
probably getting a different grafted result since the libxcursor output
I have in my store is broken:

/gnu/store/mwcfhmiivhp4q7wax3ja8s17pk20i6w9-libxcursor-1.2.0/
└── share
    └── doc
        └── libxcursor-1.2.0
            └── COPYING

This comes from guix.cbaines.net, so it's probably not affecting anyone
else. I checked where the build happened, and it took place on a machine
which I was playing around with overclocking, and wasn't running in a
stable way.

I'm sort of impressed things managed to break in such a specific way
though. Because of how the Guix Build Coordinator works, this build must
have taken place, something went wrong in the middle, and then the
outputs got uploaded and the build result reported all without
issue. The build log has some interesting "succeeded after 0.0 seconds"
bits at the end:

  https://guix.cbaines.net/build/d4850c59-a007-4754-b16d-d867d63bc95e/log

I'll close the bug since this seems to be a "me" problem.