Mutter crashes when killing Xwayland with an X11 game fullscreen
Affected version
- Fedora 33
-
mutter
from git master, tip @ commit aa2cb8a4 - Wayland
Bug summary
gnome-shell/mutter is able to survive a crash of Xwayland, as well as the user killing Xwayland
(“because I can!”).
However, if a game is fullscreen, mutter will crash, which kinda defeat the benefit of that great feature.
Steps to reproduce
- Open an X11 game fullscreen in Wayland
- Kill Xwayland
What happened
gnome-shell/mutter crashes
What did you expect to happen
mutter/gnome-shell survive happily ever after.
Relevant logs, screenshots, screencasts etc.
gdb gives:
Core was generated by `/home/ofourdan/local/bin/gnome-shell'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00007f5bf7b56df3 in async_get_property_finish (xcb_conn=0x3f36520, cookie=..., results=0x7ffc7761d1e0)
at ../../../../src/gnome/mutter/src/x11/xprops.c:205
205 results->n_items = reply->value_len;
(gdb) bt
#0 0x00007f5bf7b56df3 in async_get_property_finish (xcb_conn=0x3f36520, cookie=..., results=0x7ffc7761d1e0)
at ../../../../src/gnome/mutter/src/x11/xprops.c:205
#1 0x00007f5bf7b56f96 in get_property (x11_display=0x207d050, xwindow=39845889, xatom=355, req_type=6, results=0x7ffc7761d1e0)
at ../../../../src/gnome/mutter/src/x11/xprops.c:246
#2 0x00007f5bf7b570c1 in meta_prop_get_cardinal_list (x11_display=0x207d050, xwindow=39845889, xatom=355, cardinals_p=0x7ffc7761d248,
n_cardinals_p=0x7ffc7761d244) at ../../../../src/gnome/mutter/src/x11/xprops.c:291
#3 0x00007f5bf7ba4446 in meta_window_xwayland_adjust_fullscreen_monitor_rect (window=0x1290940, fs_monitor_rect=0x7ffc7761d3e8)
at ../../../../src/gnome/mutter/src/wayland/meta-window-xwayland.c:118
#4 0x00007f5bf7b2294c in meta_window_adjust_fullscreen_monitor_rect (window=0x1290940, monitor_rect=0x7ffc7761d3e8)
at ../../../../src/gnome/mutter/src/core/window.c:3640
#5 0x00007f5bf7aef571 in setup_constraint_info (info=0x7ffc7761d390, window=0x1290940,
flags=(META_MOVE_RESIZE_MOVE_ACTION | META_MOVE_RESIZE_RESIZE_ACTION), resize_gravity=META_GRAVITY_NORTH_WEST, orig=0x7ffc7761d460, new=0x7ffc7761d490)
at ../../../../src/gnome/mutter/src/core/constraints.c:432
#6 0x00007f5bf7aef105 in meta_window_constrain (window=0x1290940, flags=(META_MOVE_RESIZE_MOVE_ACTION | META_MOVE_RESIZE_RESIZE_ACTION),
resize_gravity=META_GRAVITY_NORTH_WEST, orig=0x7ffc7761d460, new=0x7ffc7761d490, temporary=0x7ffc7761d480, rel_x=0x7ffc7761d47c, rel_y=0x7ffc7761d478)
at ../../../../src/gnome/mutter/src/core/constraints.c:304
#7 0x00007f5bf7b23603 in meta_window_move_resize_internal (window=0x1290940, flags=(META_MOVE_RESIZE_MOVE_ACTION | META_MOVE_RESIZE_RESIZE_ACTION),
gravity=META_GRAVITY_NORTH_WEST, frame_rect=...) at ../../../../src/gnome/mutter/src/core/window.c:4106
#8 0x00007f5bf7b23b89 in meta_window_move_resize_frame (window=0x1290940, user_op=0, root_x_nw=0, root_y_nw=0, w=1920, h=1080)
at ../../../../src/gnome/mutter/src/core/window.c:4289
#9 0x00007f5bf7b23ee6 in meta_window_move_resize_now (window=0x1290940) at ../../../../src/gnome/mutter/src/core/window.c:4394
#10 0x00007f5bf7b23fc3 in idle_move_resize (data=0x1) at ../../../../src/gnome/mutter/src/core/window.c:4429
#11 0x00007f5bf7ad7eab in invoke_later_idle (data=0x289b890) at ../../../../src/gnome/mutter/src/compositor/meta-later.c:199
#12 0x00007f5bf886cecf in g_main_dispatch (context=0xd31b50) at ../../../../src/gnome/glib/glib/gmain.c:3337
#13 g_main_context_dispatch (context=0xd31b50) at ../../../../src/gnome/glib/glib/gmain.c:4055
#14 0x00007f5bf886d248 in g_main_context_iterate (context=0xd31b50, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
at ../../../../src/gnome/glib/glib/gmain.c:4131
#15 0x00007f5bf886d52b in g_main_loop_run (loop=0x10c3b80) at ../../../../src/gnome/glib/glib/gmain.c:4329
#16 0x00007f5bf7b058d3 in meta_run_main_loop () at ../../../../src/gnome/mutter/src/core/main.c:711
#17 0x00007f5bf7b058e4 in meta_run () at ../../../../src/gnome/mutter/src/core/main.c:726
#18 0x0000000000402fce in main (argc=1, argv=0x7ffc7761d818) at ../../../../src/gnome/gnome-shell/src/main.c:507
Edited by Olivier Fourdan