llvmpipe/ci: use weston's Xwayland instead of broken Xvfb

`Xvfb` segfaults 100% of the time in the nightly `llvmpipe-full` job;
not sure why the merge job `llvmpipe` wasn't affected, but also we have
no reason to use Xvfb instead of Xwayland.

Note that in 3 out of 50 runs, Xwayland also crashed with the same
message; that's a much better percentage than the current state though 😇

    (EE) Backtrace:
    (EE) 0: /usr/local/bin/Xwayland (0x55f43181a000+0x1ece97) [0x55f431a06e97]
    (EE) 1: /usr/local/bin/Xwayland (0x55f43181a000+0x1f0ad9) [0x55f431a0aad9]
    (EE) 2: /lib/x86_64-linux-gnu/libc.so.6 (0x7f1270c6a000+0x3c050) [0x7f1270ca6050]
    (EE) 3: /usr/local/bin/Xwayland (0x55f43181a000+0x174f62) [0x55f43198ef62]
    (EE) 4: /usr/local/bin/Xwayland (0x55f43181a000+0x14dcfa) [0x55f431967cfa]
    (EE) 5: /usr/local/bin/Xwayland (0x55f43181a000+0x14ee17) [0x55f431968e17]
    (EE) 6: /usr/local/bin/Xwayland (0x55f43181a000+0x1529ae) [0x55f43196c9ae]
    (EE) 7: /usr/local/bin/Xwayland (0x55f43181a000+0x147192) [0x55f431961192]
    (EE) 8: /usr/local/bin/Xwayland (0x55f43181a000+0x14a025) [0x55f431964025]
    (EE) 9: /usr/local/bin/Xwayland (0x55f43181a000+0x11640e) [0x55f43193040e]
    (EE) 10: /usr/local/bin/Xwayland (0x55f43181a000+0x11bc5e) [0x55f431935c5e]
    (EE) 11: /usr/local/bin/Xwayland (0x55f43181a000+0x11fc04) [0x55f431939c04]
    (EE) 12: /lib/x86_64-linux-gnu/libc.so.6 (0x7f1270c6a000+0x2724a) [0x7f1270c9124a]
    (EE) 13: /lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main+0x85) [0x7f1270c91305]
    (EE) 14: /usr/local/bin/Xwayland (0x55f43181a000+0xa2341) [0x55f4318bc341]
    (EE)
    (EE) Segmentation fault at address 0x4
    (EE)
    Fatal server error:
    (EE) Caught signal 11 (Segmentation fault). Server aborting
    (EE)
    [00:39:05.907] /usr/local/bin/Xwayland died on signal 6
    [00:39:05.908] xserver exited, will restart on demand

That "will restart on demand" is clearly not working btw, not sure if
that' Xwayland or weston doing something wrong, but I doubt it's
anything on our side.

A debug build of Xwayland would give us more info, but we don't want to
run CI on a debug build, so that will be something to do in a fork build
for whoever wants to investigate that:
```patch
diff --git ./.gitlab-ci/container/build-xwayland.sh ./.gitlab-ci/container/build-xwayland.sh
index 04072794727147baebf8..1b94b3c56d6948b1cece 100644
--- ./.gitlab-ci/container/build-xwayland.sh
+++ ./.gitlab-ci/container/build-xwayland.sh
@@ -23,7 +23,7 @@
 git clone https://gitlab.freedesktop.org/xorg/xserver
 cd xserver
 git checkout "$XWAYLAND_VERSION"
-meson setup _build ${EXTRA_MESON_ARGS:-}
+meson setup _build ${EXTRA_MESON_ARGS:-} --buildtype debug
 meson install -C _build
 cd ..
 rm -rf xserver
```

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36485>
This commit is contained in:
Eric Engestrom 2025-07-30 11:50:27 +02:00 committed by Marge Bot
parent 62857757a9
commit 7e819b2619

View file

@ -32,7 +32,6 @@ llvmpipe-traces:
llvmpipe:
variables:
DEQP_SUITE: llvmpipe
XVFB_SCRIPT: "install/deqp-runner.sh"
DEQP_FRACTION: 4
extends:
- .llvmpipe-deqp-test
@ -43,10 +42,13 @@ llvmpipe:
export LIBGL_DRIVERS_PATH="$CI_PROJECT_DIR/install/lib/dri"
section_start weston "weston: prepare"
WAYLAND_DISPLAY=wayland-0
weston --backend=headless-backend.so --socket="$WAYLAND_DISPLAY" --idle-time=0 &
export DISPLAY=:0
mkdir -p /tmp/.X11-unix
weston --config="$CI_PROJECT_DIR/install/common/weston.ini" --socket="$WAYLAND_DISPLAY" &
export WAYLAND_DISPLAY
while [ ! -S /tmp/.X11-unix/X0 ]; do sleep 1; done
section_end weston
xvfb-run -e results/xvfb.log --server-args='-noreset' bash -c ". $SCRIPTS_DIR/setup-test-env.sh && ${XVFB_SCRIPT}"
$CI_PROJECT_DIR/install/deqp-runner.sh
llvmpipe-full:
extends: