Xwayland intermittently hangs/doesn't start properly
Hi
It seems sometimes Xwayland doesn't work under Weston.
It seems to happen when Weston is using the drm backend upon random startups of Weston.
Sometimes it works, but sometimes all X11 applications hang upon early startup, to where xterm
freezes before it prints any messages.
Starting nested Wayland sessions, and I can't replicate the issue with the nested instances using the wayland backend oddly, all the instances of Xwayland work
Sometimes I can get it to unstick if I kill the Xwayland process, and then the next one that starts works
I can't isolate the exact cause yet. I am using Xwayland master. I first realized this in July but I am not sure if it was going on for longer or not Xwayland is compiled with "-Dxorg=true -Dxephyr=false -Dxwayland=true -Dglamor=true -Dxnest=false -Dxvfb=false -Dxwin=false" Npt sure how relevant that is here, I think it's a Weston bug, I don't seem to have this issue with Gnome Shell, KDE, or wlroots, or even Mir
Trying to keep the logs short, but I do see the invalid portlen 15
line on instances that fail, and I do NOT see it on instances where it doesn't hang.
-- Journal begins at Sat 2022-10-08 00:11:16 UTC. --
Date: 2022-10-08 UTC
[00:11:30.236] weston 11.0.90
https://wayland.freedesktop.org
Bug reports to: https://gitlab.freedesktop.org/wayland/weston/iss
ues/
Build: 11.0.0-59-gff459f02+
[00:11:30.236] Command line: /opt/bin/weston --backend=drm-backend.so --modules=
screen-share.so --seat=seat0 --xwayland --socket=wayland-0000-seat0
[00:11:30.236] OS: Linux, 5.19.14, #1 SMP PREEMPT_DYNAMIC Wed Oct 5 23:51:27 UTC
2022, x86_64
[00:11:30.236] Flight recorder: enabled
[00:11:30.237] Using config file '/home/rebestie/.config/weston.ini'
[00:11:30.237] Output repaint window is 7 ms maximum.
[00:11:30.237] Loading module '/opt/lib/x86_64-linux-gnu/libweston-12/drm-backen
d.so'
[00:11:30.238] initializing drm backend
[00:11:30.238] Trying libseat launcher...
[00:11:30.238] [libseat/backend/seatd.c:64] Could not connect to socket /run/sea
td.sock: No such file or directory
[00:11:30.238] [libseat/libseat.c:76] Backend 'seatd' failed to open seat, skipp
ing
[00:11:30.242] [libseat/libseat.c:73] Seat opened with backend 'logind'
[00:11:30.242] libseat: session control granted
[00:11:30.244] using /dev/dri/card1
[00:11:30.244] DRM: supports atomic modesetting
[00:11:30.244] DRM: supports GBM modifiers
[00:11:30.244] DRM: supports picture aspect ratio
[00:11:30.244] Loading module '/opt/lib/x86_64-linux-gnu/libweston-12/gl-rendere
r.so'
MESA-LOADER: failed to open zink: /opt/lib/x86_64-linux-gnu/dri/zink_dri.so: can
not open shared object file: No such file or directory (search paths /opt/lib/x8
6_64-linux-gnu/dri, suffix _dri)
failed to load driver: zink
[00:11:30.271] warning: failed to query rendering device from EGL
[00:11:30.271] EGL version: 1.4
[00:11:30.271] EGL vendor: Mesa Project
[00:11:30.271] EGL client APIs: OpenGL OpenGL_ES
[00:11:30.271] warning: Disabling render GPU timeline and explicit synchronizati
on due to missing EGL_ANDROID_native_fence_sync extension
[00:11:30.271] EGL features:
EGL Wayland extension: no
context priority: no
buffer age: yes
partial update: no
swap buffers with damage: no
configless context: yes
surfaceless context: yes
dmabuf support: modifiers
[00:11:30.276] GL version: OpenGL ES 3.2 Mesa 22.3.0-devel (git-3047195c62)
[00:11:30.276] GLSL version: OpenGL ES GLSL ES 3.20
[00:11:30.276] GL vendor: Mesa/X.org
[00:11:30.276] GL renderer: llvmpipe (LLVM 11.0.1, 256 bits)
[00:11:30.283] GL ES 3.2 - renderer features:
read-back format: ARGB8888
wl_shm 10 bpc formats: yes
wl_shm 16 bpc formats: yes
wl_shm half-float formats: yes
internal R and RG formats: yes
OES_EGL_image_external: yes
[00:11:30.289] event1 - Power Button: is tagged by udev as: Keyboard
[00:11:30.289] event1 - Power Button: device is a keyboard
[00:11:30.425] event4 - QEMU QEMU USB Tablet: is tagged by udev as: Mouse
[00:11:30.426] event4 - QEMU QEMU USB Tablet: device is a pointer
[00:11:30.564] event5 - QEMU QEMU USB Tablet: is tagged by udev as: Mouse
[00:11:30.565] event5 - QEMU QEMU USB Tablet: device is a pointer
[00:11:30.574] event0 - AT Translated Set 2 keyboard: is tagged by udev as: Key
board
[00:11:30.574] event0 - AT Translated Set 2 keyboard: device is a keyboard
[00:11:30.583] event3 - VirtualPS/2 VMware VMMouse: is tagged by udev as: Mouse
[00:11:30.584] event3 - VirtualPS/2 VMware VMMouse: device is a pointer
[00:11:30.589] event2 - VirtualPS/2 VMware VMMouse: is tagged by udev as: Mouse
[00:11:30.590] event2 - VirtualPS/2 VMware VMMouse: device is a pointer
[00:11:30.593] event6 - PC Speaker: not tagged as supported input device
[00:11:30.637] event6 - not using input device '/dev/input/event6'
[00:11:30.645] libinput: configuring device "Power Button".
[00:11:30.645] libinput: configuring device "QEMU QEMU USB Tablet".
[00:11:30.645] input device event4 has no enabled output associated (none named)
, skipping calibration for now.
[00:11:30.645] libinput: configuring device "QEMU QEMU USB Tablet".
[00:11:30.645] input device event5 has no enabled output associated (none named)
, skipping calibration for now.
[00:11:30.645] libinput: configuring device "AT Translated Set 2 keyboard".
[00:11:30.645] libinput: configuring device "VirtualPS/2 VMware VMMouse".
[00:11:30.645] libinput: configuring device "VirtualPS/2 VMware VMMouse".
[00:11:30.645] input device event2 has no enabled output associated (none named)
, skipping calibration for now.
[00:11:30.645] DRM: head 'Virtual-1' updated, connector 36 is connected, EDID ma
ke 'unknown', model 'unknown', serial 'unknown'
Supported EOTF modes: SDR
[00:11:30.645] DRM: head 'Virtual-1' found, connector 36 is connected, EDID make
'unknown', model 'unknown', serial 'unknown'
Supported EOTF modes: SDR
[00:11:30.645] Registered plugin API 'weston_drm_output_api_v1' of size 32
[00:11:30.645] Registered plugin API 'weston_drm_virtual_output_api_v2' of size
48
[00:11:30.645] Color manager: no-op
<<<input device and output device info omitted>>>
[00:11:30.646] Compositor capabilities:
arbitrary surface rotation: yes
screen capture uses y-flip: yes
cursor planes: yes
arbitrary resolutions: no
view mask clipping: yes
explicit sync: no
color operations: yes
presentation clock: CLOCK_MONOTONIC, id 1
presentation clock resolution: 0.000000001 s
[00:11:30.647] Loading module '/opt/lib/x86_64-linux-gnu/weston/desktop-shell.so
'
[00:11:30.648] Loading module '/opt/lib/x86_64-linux-gnu/libweston-12/xwayland.s
o'
[00:11:30.656] Registered plugin API 'weston_xwayland_v1' of size 32
[00:11:30.656] Registered plugin API 'weston_xwayland_surface_v1' of size 16
[00:11:30.656] xserver listening on display :0
[00:11:30.660] Loading module '/opt/lib/x86_64-linux-gnu/weston/screen-share.so'
[00:11:30.660] launching '/opt/libexec/weston-keyboard'
[00:11:30.661] launching '/opt/libexec/weston-desktop-shell'
<<<Other application output omitted>>>
[00:11:40.231] Spawned Xwayland server, pid 1421
(WW) Option "-listen" for file descriptors is deprecated
Please use "-listenfd" instead.
(WW) Option "-listen" for file descriptors is deprecated
Please use "-listenfd" instead.
Failed to initialize glamor, falling back to sw
[00:11:40.299] xfixes version: 6.0
[00:11:40.305] created wm, root 1311
_XSERVTransSocketReopen: invalid portlen 15
_XSERVTransSocketReopenCOTSServer: Unable to open socket for local
_XSERVTransReopen: transport open failed
Got NULL while trying to Reopen listen port.
_XSERVTransSocketReopen: invalid portlen 15
_XSERVTransSocketReopenCOTSServer: Unable to open socket for local
_XSERVTransReopen: transport open failed
Got NULL while trying to Reopen listen port.
Thanks