GNOME Bugzilla – Bug 763400
gtkperf on xwayland-1.17.4 crashes gnome-shell-3.18.3
Last modified: 2021-07-05 13:53:18 UTC
Hello! I'm running gtkperf-0.40 on gnome-shell with wayland-1.10.0/xwayland-1.17.4. Distribution is gentoo. GtkCombobox/GtkCompoboxEntry test are crashing gnome-shell 100% of time after some large number of rounds (10000 rounds are enough on my machine, but YMMV). I could only get crashdump for gtk-shell, gtkperf says GtkComboBox - gtkperf: Fatal IO error 11 (Resource temporarily unavailable) on X server ":1" For gnome-shell here is a stack-trace:
+ Trace 236043
(full log is here http://pastebin.com/bfFhzhTR) This cannot be reproduced on weston, that's why I'm reporting this bug here.
Oh, and gtk+ version is 2.24.28 (gtkperf is not using gtk3...)
From the pastebin: msg = 0x4c4e6b0 "Connection to xwayland lost" So my guess is that gtkperf crashes xwayland and takes mutter with it (unlike weston, mutter requires Xwayland), so this is most likely an Xwayland bug.
I can reproduce with Xwayland from Xserver 1.18.3 as well, but it's not a crash, it's an abort: (gdb) bt
+ Trace 236279
(EE) failed to write to XWayland fd: Resource temporarily unavailable So my take is that the socket is full because mutter can't cope with the amount of data sent by Xwayland. But interestingly, waiting for the Wayland socket to be writeable again (using poll() for example) can't work either because at the same time gnome-shell/mutter is waiting on the X socket (in XGetWindowAttributes), so we basically end up in a dead lock, mutter trying to write to the X11 socket whereas Xwayland is filling up the Wayland socket, so once the Wayland socket is full, I don't see a way for Xwayland to recover... => Moving to mutter.
Comment #0 mentions that the problem doesn't occur with weston, which I also concur, on weston Xwayland doesn't abort in the same scenario, possibly because weston uses xcb and makes async X calls?
GNOME is going to shut down bugzilla.gnome.org in favor of gitlab.gnome.org. As part of that, we are mass-closing older open tickets in bugzilla.gnome.org which have not seen updates for a longer time (resources are unfortunately quite limited so not every ticket can get handled). If you can still reproduce the situation described in this ticket in a recent and supported software version, then please follow https://wiki.gnome.org/GettingInTouch/BugReportingGuidelines and create a new ticket at https://gitlab.gnome.org/GNOME/mutter/-/issues/ Thank you for your understanding and your help.