On Sat, 05 Oct 2024 at 14:19:50 +0100, Simon McVittie wrote:
> The error message suggests that there might be a problem with the
> chroot/container, or possibly with the host /tmp being shared with it:
> 
> > Bail out! libmutter-FATAL-ERROR: Failed to start X Wayland: Directory 
> > "/tmp/.X11-unix" is not writable

Actually, this might be another symptom of #1082659, a libunwind8
regression on armhf (which either doesn't affect arm64, or is masked by
the fact that the new libunwind FTBFS on arm64, #1082284). It looks as
though that regression doesn't affect armel either, which would be
consistent with mutter also having passed tests on armel.

In an armhf chroot on the porterbox amdahl, I cannot reproduce this error
message (probably because amdahl's schroot is configured differently,
and /tmp *is* shared with the host, unlike buildds), but I did see a symptom
similar to #1082588 in libportal: all tests passed (or reported expected
failures), but then dh_auto_test failed anyway.

If I change the xvfb-run invocation in debian/rules by adding "-e
/dev/stderr" to make its log go to stderr instead of the default
/dev/null, then I see that Xvfb is repeatedly segfaulting:

----8<----
env GIO_USE_VFS=local GIO_USE_VOLUME_MONITOR=unix GVFS_DISABLE_FUSE=1 
dbus-run-session -- xvfb-run -e /dev/stderr -s '+iglx -noreset' -a dh_auto_test 
-- -C /home/smcv/mutter/obj-arm-linux-gnueabihf --no-rebuild --verbose 
--timeout-multiplier 6 --no-stdsplit --print-errorlogs --no-suite flaky 
--no-suite broken
(EE)
(EE) Backtrace:
(EE)
(EE) Segmentation fault at address 0x8040201
(EE)
Fatal server error:
(EE) Caught signal 11 (Segmentation fault). Server aborting
(EE)
(EE)
(EE) Backtrace:
(EE)
(EE) Segmentation fault at address 0x8040201
(EE)
Fatal server error:
(EE) Caught signal 11 (Segmentation fault). Server aborting
... more crashes ...
(EE) Caught signal 11 (Segmentation fault). Server aborting
(EE)
        cd obj-arm-linux-gnueabihf && DEB_PYTHON_INSTALL_LAYOUT=deb 
LC_ALL=C.UTF-8 MESON_TESTTHREADS=8 meson test -C 
/home/smcv/mutter/obj-arm-linux-gnueabihf --no-rebuild --verbose 
--timeout-multiplier 6 --no-stdsplit --print-errorlogs --no-suite flaky 
--no-suite broken
  1/152 gvdb / gvdb                                                             
                  RUNNING
----8<----

I think what is happening in mutter could perhaps be this:

mutter requires /tmp/.X11-unix (for Xwayland) for some of its unit tests.

On architectures where xvfb-run works as intended, it creates
/tmp/.X11-unix as a side-effect, and then by the time mutter needs it,
it already exists and all is well.

But, on armhf with the current libunwind8 from unstable, Xvfb is crashing,
so it doesn't get far enough to create /tmp/.X11-unix; but for whatever
reason, the xvfb-run script doesn't detect that and continues to run
dh_auto_test anyway, and we end up running the mutter unit tests without
them being wrapped in Xvfb, hence /tmp/.X11-unix never got created.

    smcv

Reply via email to