mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2025-12-20 04:40:07 +01:00
Our window decor uses cairo-xcb. cairo-xcb stores xcb_connection_t internally and uses them as kind of a hash key for internal bookkeeping. This needs to be torn down with a cairo_device_finish, when the last cairo surface is destroyed, and we are not properly handling that. Because of this weston bug, if the Xwayland server dies, is restarted, and the weston X window manager gets the same xcb_connection_t pointer value for a new connection that it had for a previous connection, cairo-xcb will use stale state and crash. Weston is used in some places (like Mesa CI) where Xwayland crashes are more common than one might usually expect, and weston needs to be robust against these failures. It's ok to have no window frames in xwl in these cases, because nobody is interacting with the windows. The '--no-xwm-decorations' command line option will now remove cairo-xcb from use entirely, so this crash can no longer happen. We should still fix the bugs in our cairo usage, but I think long term it's still ok to have a way to disable this and reduce complexity. Ref #1042 Signed-off-by: Derek Foreman <derek.foreman@collabora.com> |
||
|---|---|---|
| .. | ||
| dnd.c | ||
| launcher.c | ||
| meson.build | ||
| selection.c | ||
| window-manager.c | ||
| xwayland-internal-interface.h | ||
| xwayland.h | ||