FS#75885 - [mutter] Gnome-Shell crashes in mutter on collapsing droplist in ProtonUp-Qt

Attached to Project: Arch Linux
Opened by Christopher Snowhill (kode54) - Monday, 12 September 2022, 06:29 GMT
Last edited by Toolybird (Toolybird) - Friday, 02 June 2023, 07:09 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Jan Alexander Steffens (heftig)
Architecture x86_64
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No


With the current releases of Gnome packages in Arch, and the latest stable version of ProtonUp-Qt from the AUR, there appears to be a conflict on a system with an AMD GPU (RX 480 8GB). A specific action causes Gnome-Shell to crash in Wayland related functions in Mutter.

Additional info:
* package version(s)

mutter: 42.4-1
gnome-shell: 1:42.4-1
mesa: 22.1.7-1
linux-tkg-cfs: 5.19.8-269 (linux-tkg.cfg available upon request if necessary)
protonup-qt: 2.7.2-1
qt5-base: 5.15.6+kde+r167-1

* config and/or log files etc.

Crash backtrace from gnome-shell:
#0 meta_get_first_subsurface_node (surface=0x558cfeba6e60)
at ../mutter/src/wayland/meta-wayland-surface.h:399
#1 pointer_can_grab_surface (pointer=0x558cfbb52f10, surface=0x558cfeba6e60)
at ../mutter/src/wayland/meta-wayland-pointer.c:1306
#2 0x00007f9a5778ff73 in meta_wayland_pointer_can_grab_surface
(serial=126, surface=0x558cfeba6e60, pointer=0x558cfbb52f10)
at ../mutter/src/wayland/meta-wayland-pointer.c:1321
#3 meta_wayland_seat_get_grab_info.constprop.0
(seat=<optimized out>, surface=0x558cfeba6e60, serial=126, x=x@entry=0x0, y=y@entry=0x0, require_pressed=0) at ../mutter/src/wayland/meta-wayland-seat.c:467
#4 0x00007f9a57714504 in token_can_activate (token=<optimized out>)
at ../mutter/src/wayland/meta-wayland-activation.c:280
#5 activation_activate
(client=<optimized out>, resource=<optimized out>, token_str=<optimized out>, surface_resource=<optimized out>) at ../mutter/src/wayland/meta-wayland-activation.c:329
#6 0x00007f9a56a51536 in ffi_call_unix64 () at ../src/x86/unix64.S:105
#7 0x00007f9a56a4e037 in ffi_call_int
(cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=<optimized out>) at ../src/x86/ffi64.c:672
#8 0x00007f9a56fb9ada in wl_closure_invoke
(closure=closure@entry=0x558d001e78b0, target=<optimized out>,
target@entry=0x558d00187ee0, opcode=opcode@entry=2, data=<optimized out>,
data@entry=0x558d0054d3c0, flags=2) at ../wayland-1.21.0/src/connection.c:1025
#9 0x00007f9a56fbe010 in wl_client_connection_data
(fd=<optimized out>, mask=<optimized out>, data=<optimized out>)
at ../wayland-1.21.0/src/wayland-server.c:437
#10 0x00007f9a56fbc9e2 in wl_event_loop_dispatch
(loop=0x558cfbcf9a00, timeout=timeout@entry=0)
at ../wayland-1.21.0/src/event-loop.c:1027
#11 0x00007f9a5770bfdd in wayland_event_source_dispatch
(base=<optimized out>, callback=<optimized out>, data=<optimized out>)
--Type <RET> for more, q to quit, c to continue without paging--c
at ../mutter/src/wayland/meta-wayland.c:110
#12 0x00007f9a58362b2b in g_main_dispatch (context=0x558cfb78e710) at ../glib/glib/gmain.c:3417
#13 g_main_context_dispatch (context=0x558cfb78e710) at ../glib/glib/gmain.c:4135
#14 0x00007f9a583b8e79 in g_main_context_iterate.constprop.0 (context=0x558cfb78e710, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4211
#15 0x00007f9a5836208f in g_main_loop_run (loop=0x558cfd34aca0) at ../glib/glib/gmain.c:4411
#16 0x00007f9a576a193b in meta_context_run_main_loop (context=context@entry=0x558cfb7890c0, error=error@entry=0x7fffd349b560) at ../mutter/src/core/meta-context.c:437
#17 0x0000558cf9b8448b in main (argc=<optimized out>, argv=<optimized out>) at ../gnome-shell/src/main.c:566

* link to upstream bug report, if any

I haven't filed an upstream bug report yet, as a fellow developer was unable to reproduce it on a different distribution, running recent versions of all the packages involved.

Steps to reproduce:

1. Open ProtonUp-Qt
2. Click "Add version"
3. Click the Proton GE version drop list when it populates, expanding it to a list of Proton GE versions
4. Attempt to click the drop list root control again to collapse the list without making a selection.
5. Cursor now freezes, Gnome-Shell is crashing here.
This task depends upon

Closed by  Toolybird (Toolybird)
Friday, 02 June 2023, 07:09 GMT
Reason for closing:  Fixed
Additional comments about closing:  See comments
Comment by Christopher Snowhill (kode54) - Monday, 12 September 2022, 06:36 GMT
Amending bug report: This uses Qt6, so:

qt6-base: 6.3.2-1
pyside6: 6.3.1-3
Comment by Christopher Snowhill (kode54) - Monday, 12 September 2022, 07:03 GMT
Okay, I resolved the issue by downgrading all my Qt6 packages to the last 6.3.1 versions in the official repository.

Slightly off-topic, apparently 6.3.2 is such a hot mess that it doesn't even have a release tag in their GitHub repository.
Comment by Christopher Snowhill (kode54) - Monday, 12 September 2022, 07:15 GMT
Thanks to a fellow Wayland desktop user, I isolated the crash in Gnome-Shell to this exact commit:


Reverting that with patch -Np1 -R on qt6-wayland 6.3.2-1 removes the crash. Looks like Gnome-Shell really doesn't like that.
Comment by Echo (DodoGTA) - Monday, 12 September 2022, 07:25 GMT
I was the person who found the problematic commit (I actually discovered the issue by accident while looking at some stuff in OBS)

Thankfully GNOME already fixed this in master (it should be in GNOME/mutter 43):

For users, you should downgrade Qt 6 to 6.3.1-1 (downgrading qt6-wayland would be enough, but unfortunately there's a
version mismatch error so you have to downgrade the entire group)

For maintainers, you should temporarily revert the commit listed in the previous comment until mutter 43 is released
in the Arch repositories 🐸
Comment by Christopher Snowhill (kode54) - Monday, 12 September 2022, 07:52 GMT Comment by Christopher Snowhill (kode54) - Monday, 12 September 2022, 07:52 GMT
Oh, sorry, thanks for posting here. I didn't see your comment before posting mine.
Comment by Toolybird (Toolybird) - Thursday, 15 September 2022, 22:03 GMT
IIUC, this is a mutter bug (now fixed for Gnome 43) tickled by a (possibly bad) update to qt6-wayland 6.3.2?

AFAICT, the mutter fix hasn't been applied to Gnome 42 branch. Gnome 43 is not too far away...maybe we just wait it out?

Not sure if @arojas is inclined to revert said problematic qt6-wayland commit? Probably not..