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 741042 - Segfault in wayland move drag after drag is unset
Segfault in wayland move drag after drag is unset
Status: RESOLVED OBSOLETE
Product: gtk+
Classification: Platform
Component: Backend: Wayland
3.14.x
Other Linux
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2014-12-02 19:55 UTC by Jonny Lamb
Modified: 2015-11-17 20:40 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
workaround for crasher (435 bytes, patch)
2014-12-03 14:20 UTC, Jonny Lamb
none Details | Review

Description Jonny Lamb 2014-12-02 19:55:37 UTC
bug #731380 fixed some problems with touch events but now move drag segfaults, specifically because of 29d9b2f7cfec936b3a923797ac.

(sorry for the lack of debug symbols. not sure why they're not showing, the library is not stripped)

  • #0 touch_handle_motion
    from /usr/lib/libgdk-3.so.0
  • #1 ffi_call_SYSV
    at ../src/arm/sysv.S line 196
  • #2 ffi_call
    at ../src/arm/ffi.c line 250
  • #3 wl_closure_invoke
    at src/connection.c line 934
  • #4 dispatch_event
    at src/wayland-client.c line 1136
  • #5 dispatch_queue
    at src/wayland-client.c line 1261
  • #6 wl_display_dispatch_queue
    at src/wayland-client.c line 1445
  • #7 _gdk_wayland_display_queue_events
    from /usr/lib/libgdk-3.so.0
  • #8 gdk_display_get_event
    from /usr/lib/libgdk-3.so.0
  • #9 gdk_event_source_dispatch
    from /usr/lib/libgdk-3.so.0
  • #10 g_main_dispatch
    at gmain.c line 3064
  • #11 g_main_context_dispatch
    at gmain.c line 3663
  • #12 g_main_context_iterate
    at gmain.c line 3734
  • #13 g_main_context_iterate
    at gmain.c line 3671
  • #14 g_main_context_iteration
    at gmain.c line 3795
  • #15 g_application_run
    at gapplication.c line 2282
  • #16 main
  • #0 gdk_wayland_device_unset_touch_grab
    from /usr/lib/libgdk-3.so.0
  • #1 gdk_wayland_window_begin_move_drag
    from /usr/lib/libgdk-3.so.0
  • #2 gdk_window_begin_move_drag_for_device
    from /usr/lib/libgdk-3.so.0
  • #3 multipress_gesture_stopped_cb
    from /usr/lib/libgtk-3.so.0
  • #4 g_cclosure_marshal_VOID__VOIDv
    at gmarshal.c line 115
  • #5 _g_closure_invoke_va
    at gclosure.c line 831
  • #6 g_signal_emit_valist
    at gsignal.c line 3218
  • #7 g_signal_emit
    at gsignal.c line 3365
  • #8 _gtk_gesture_multi_press_stop
    from /usr/lib/libgtk-3.so.0
  • #9 _double_click_timeout_cb
    from /usr/lib/libgtk-3.so.0
  • #10 gdk_threads_dispatch
    from /usr/lib/libgdk-3.so.0
  • #11 g_timeout_dispatch
    at gmain.c line 4473
  • #12 g_main_dispatch
    at gmain.c line 3064
  • #13 g_main_context_dispatch
    at gmain.c line 3663
  • #14 g_main_context_iterate
    at gmain.c line 3734
  • #15 g_main_context_iterate
    at gmain.c line 3671
  • #16 g_main_context_iteration
    at gmain.c line 3795
  • #17 g_application_run
    at gapplication.c line 2282
  • #18 main

I don't really understand why gdk_wayland_device_unset_touch_grab() is being called here but it was explicitly added in the aforementioned commit. Perhaps the fix here is just to ignore the motion event if we don't have a GdkWaylandTouchData (which doesn't appear to cause other issues)?

I don't know enough about this touch stack so I thought I'd just open a bug.
Comment 1 Jonny Lamb 2014-12-02 19:56:59 UTC
(the two backtraces come out badly in bugzilla. click the link to see both separately and with my comment in the middle.)
Comment 2 Jonny Lamb 2014-12-03 14:20:35 UTC
Created attachment 292071 [details] [review]
workaround for crasher

This stops the crash from happening and doesn't seem such a bad fix, but I could be wrong.
Comment 3 Matthias Clasen 2015-11-17 20:40:13 UTC
Can't reproduce a move drag with my touchscreen in a wayland session, so this is probably no longer relevant. Please reopen if it is.