After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 779388 - wayland: crash when changing cursor theme from inspector
wayland: crash when changing cursor theme from inspector
Status: RESOLVED OBSOLETE
Product: gtk+
Classification: Platform
Component: Backend: Wayland
3.22.x
Other Linux
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2017-03-01 01:35 UTC by Christian Hergert
Modified: 2018-05-02 18:12 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Christian Hergert 2017-03-01 01:35:03 UTC
I installed the elementary¹ cursor theme to test out a bug. When selecting it from the inspector, I got the following crash.

  • #0 _gdk_wayland_cursor_get_buffer
    at /home/christian/Projects/gtk+-3/gdk/wayland/gdkcursor-wayland.c line 235
  • #1 gdk_wayland_device_update_window_cursor
    at /home/christian/Projects/gtk+-3/gdk/wayland/gdkdevice-wayland.c line 408
  • #2 gdk_wayland_device_set_window_cursor
    at /home/christian/Projects/gtk+-3/gdk/wayland/gdkdevice-wayland.c line 521
  • #3 gdk_window_wayland_set_device_cursor
    at /home/christian/Projects/gtk+-3/gdk/wayland/gdkwindow-wayland.c line 2733
  • #4 update_cursor
    at /home/christian/Projects/gtk+-3/gdk/gdkwindow.c line 7604
  • #5 _gdk_display_set_window_under_pointer
    at /home/christian/Projects/gtk+-3/gdk/gdkwindow.c line 8546
  • #6 proxy_pointer_event
    at /home/christian/Projects/gtk+-3/gdk/gdkwindow.c line 9273
  • #7 _gdk_windowing_got_event
    at /home/christian/Projects/gtk+-3/gdk/gdkwindow.c line 10030
  • #8 _gdk_wayland_display_deliver_event
    at /home/christian/Projects/gtk+-3/gdk/wayland/gdkeventsource.c line 156
  • #9 gdk_wayland_seat_flush_frame_event
    at /home/christian/Projects/gtk+-3/gdk/wayland/gdkdevice-wayland.c line 1407
  • #10 pointer_handle_frame
    at /home/christian/Projects/gtk+-3/gdk/wayland/gdkdevice-wayland.c line 1727
  • #11 ffi_call_unix64
    from /lib64/libffi.so.6
  • #12 ffi_call
    from /lib64/libffi.so.6
  • #13 wl_closure_invoke
    at /home/christian/Projects/wayland/src/connection.c line 935
  • #14 dispatch_event
    at /home/christian/Projects/wayland/src/wayland-client.c line 1310
  • #15 dispatch_queue
    at /home/christian/Projects/wayland/src/wayland-client.c line 1456
  • #16 wl_display_dispatch_queue_pending
    at /home/christian/Projects/wayland/src/wayland-client.c line 1698
  • #17 wl_display_dispatch_pending
    at /home/christian/Projects/wayland/src/wayland-client.c line 1761
  • #18 _gdk_wayland_display_queue_events
    at /home/christian/Projects/gtk+-3/gdk/wayland/gdkeventsource.c line 198
  • #19 gdk_display_get_event
    at /home/christian/Projects/gtk+-3/gdk/gdkdisplay.c line 438
  • #20 gdk_event_source_dispatch
    at /home/christian/Projects/gtk+-3/gdk/wayland/gdkeventsource.c line 117
  • #21 g_main_dispatch
    at /home/christian/Projects/glib/glib/gmain.c line 3203
  • #22 g_main_context_dispatch
    at /home/christian/Projects/glib/glib/gmain.c line 3856
  • #23 g_main_context_iterate
    at /home/christian/Projects/glib/glib/gmain.c line 3929
  • #24 g_main_context_iteration
    at /home/christian/Projects/glib/glib/gmain.c line 3990
  • #25 g_application_run
    at /home/christian/Projects/glib/gio/gapplication.c line 2381
  • #26 main
    at main.c line 118

Comment 1 Christian Hergert 2017-03-01 01:35:24 UTC
¹ https://github.com/snwh/elementary-cursors
Comment 2 Olivier Fourdan 2017-03-01 08:07:54 UTC
Odd, I tried setting the same cursor theme from gnome-tweak-tools and it worked.
Comment 3 Christian Hergert 2017-03-01 08:09:34 UTC
Right before that, i got some warning about empty wl cursor structures, but I mistakenly forgot to copy it, oops!
Comment 4 Olivier Fourdan 2017-03-01 08:18:34 UTC
I cannot reproduce with the inspector either... running gtk3-demo from current gtk-3-22 branch, startign the inspector and changing the cursor there (and size) works here...

Can you provide the full backtrace maybe?

The image index is 0 so unlikely the problem, and the cursor is not null when entering _gdk_wayland_cursor_get_buffer() and the code checks for wayland_cursor->wl_cursor being non-null so best bet is wayland_cursor->wl_cursor->images but cannot get to this using just a simple backtrace.
Comment 5 Christian Hergert 2017-03-01 08:37:59 UTC
That is indeed what I was testing, we were using GDK_SB_H_DOUBLE_ARROW and GDK_SB_V_DOUBLE_ARROW instead of the cursor-name based col-resize/row-resize (and it was missing from their theme).

I don't have access to it anymore, but I'll see if I can reproduce again.
Comment 6 Matthias Clasen 2017-03-01 16:36:43 UTC
Can we get a quick-and-dirty testcase that uses the enums instead of the names ?
Comment 7 Christian Hergert 2017-03-01 21:13:42 UTC
The complicating factor is that we have to build it into a flatpak i think.
Comment 8 GNOME Infrastructure Team 2018-05-02 18:12:06 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to GNOME's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/gtk/issues/773.