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 791371 - Holding finger on touchscreen while GNOME initially starts up crashes GNOME
Holding finger on touchscreen while GNOME initially starts up crashes GNOME
Status: RESOLVED FIXED
Product: mutter
Classification: Core
Component: general
3.26.x
Other Linux
: High critical
: ---
Assigned To: mutter-maint
mutter-maint
Depends on:
Blocks:
 
 
Reported: 2017-12-08 04:04 UTC by Lyude
Modified: 2018-01-12 11:00 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
clutter/evdev: Ignore unknown touch points (1.67 KB, patch)
2017-12-11 10:26 UTC, Jonas Ådahl
committed Details | Review

Description Lyude 2017-12-08 04:04:47 UTC
What the title says, if you try to log into GNOME in wayland mode while holding your finger on the touch screen the shell will suddenly crash and you'll be returned to gdm's login screen. Seen on Fedora 27 gnome shell 3.26.2

Stack trace from systemd:

Process 2084 (gnome-shell) of user 1000 dumped core.

Stack trace of thread 2084:
#0  0x00007f6de4ed47a5 process_device_event (libmutter-clutter-1.so)
#1  0x00007f6de4ed4f74 dispatch_libinput (libmutter-clutter-1.so)
#2  0x00007f6de625bbb7 g_main_context_dispatch (libglib-2.0.so.0)
#3  0x00007f6de625bf60 g_main_context_iterate.isra.25 (libglib-2.0.so.0)
#4  0x00007f6de625c272 g_main_loop_run (libglib-2.0.so.0)
#5  0x00007f6de47ab56d meta_xwayland_start (libmutter-1.so.0)
#6  0x00007f6de47aa96e meta_wayland_init (libmutter-1.so.0)
#7  0x00007f6de47760b5 meta_init (libmutter-1.so.0)
#8  0x000055cdf27dc11a main (gnome-shell)
#9  0x00007f6de40ef03a __libc_start_main (libc.so.6)
#10 0x000055cdf27dc56a _start (gnome-shell)

Stack trace of thread 2086:
#0  0x00007f6de41db8bb __GI___poll (libc.so.6)
#1  0x00007f6de625bed9 g_main_context_iterate.isra.25 (libglib-2.0.so.0)
#2  0x00007f6de625bfec g_main_context_iteration (libglib-2.0.so.0)
#3  0x00007f6de625c031 glib_worker_main (libglib-2.0.so.0)
#4  0x00007f6de62834c6 g_thread_proxy (libglib-2.0.so.0)
#5  0x00007f6de44ba609 start_thread (libpthread.so.0)
#6  0x00007f6de41e7e6f __clone (libc.so.6)

Stack trace of thread 2089:
#0  0x00007f6de41db8bb __GI___poll (libc.so.6)
#1  0x00007f6de625bed9 g_main_context_iterate.isra.25 (libglib-2.0.so.0)
#2  0x00007f6de625bfec g_main_context_iteration (libglib-2.0.so.0)
#3  0x00007f6dd05d142d dconf_gdbus_worker_thread (libdconfsettings.so)
#4  0x00007f6de62834c6 g_thread_proxy (libglib-2.0.so.0)
#5  0x00007f6de44ba609 start_thread (libpthread.so.0)
#6  0x00007f6de41e7e6f __clone (libc.so.6)

Stack trace of thread 2087:
#0  0x00007f6de41db8bb __GI___poll (libc.so.6)
#1  0x00007f6de625bed9 g_main_context_iterate.isra.25 (libglib-2.0.so.0)
#2  0x00007f6de625c272 g_main_loop_run (libglib-2.0.so.0)
#3  0x00007f6de6844b36 gdbus_shared_thread_func (libgio-2.0.so.0)
#4  0x00007f6de62834c6 g_thread_proxy (libglib-2.0.so.0)
#5  0x00007f6de44ba609 start_thread (libpthread.so.0)
#6  0x00007f6de41e7e6f __clone (libc.so.6)

Stack trace of thread 2088:
#0  0x00007f6de41e20d9 syscall (libc.so.6)
#1  0x00007f6de62a166a g_cond_wait_until (libglib-2.0.so.0)
#2  0x00007f6de6230381 g_async_queue_pop_intern_unlocked (libglib-2.0.so.0)
#3  0x00007f6de6283e64 g_thread_pool_thread_proxy (libglib-2.0.so.0)
#4  0x00007f6de62834c6 g_thread_proxy (libglib-2.0.so.0)
#5  0x00007f6de44ba609 start_thread (libpthread.so.0)
#6  0x00007f6de41e7e6f __clone (libc.so.6)

I find some really bizarre bugs…
Comment 1 André Klapper 2017-12-08 04:38:01 UTC
Thanks for taking the time to report this.
Unfortunately, that stack trace is missing some elements that will help a lot to solve the problem, so it will be hard for the developers to fix that crash. Can you get us a stack trace with debugging symbols? Please see https://wiki.gnome.org/Community/GettingInTouch/Bugzilla/GettingTraces for more information on how to do so and reopen this bug report. Thanks in advance!
Comment 2 Strangiato 2017-12-08 10:56:14 UTC
crash reproducible on Arch Linux, gnome 3.26.2.
Comment 3 Florian Müllner 2017-12-08 11:04:19 UTC
We'll need a more complete stacktrace to narrow down the issue, but the trace we have points to mutter's clutter fork, so reassigning.
Comment 4 Lyude 2017-12-08 19:45:16 UTC
(gdb) bt
  • #0 process_device_event
    at evdev/clutter-device-manager-evdev.c line 1500
  • #1 process_event
    at evdev/clutter-device-manager-evdev.c line 1823
  • #2 process_events
    at evdev/clutter-device-manager-evdev.c line 1835
  • #3 dispatch_libinput
    at evdev/clutter-device-manager-evdev.c line 719
  • #4 clutter_event_dispatch
    at evdev/clutter-device-manager-evdev.c line 740
  • #5 g_main_dispatch
    at gmain.c line 3148
  • #6 g_main_context_dispatch
    at gmain.c line 3813
  • #7 g_main_context_iterate
    at gmain.c line 3886
  • #8 g_main_loop_run
    at gmain.c line 4082
  • #9 meta_run
    at core/main.c line 648
  • #10 main
    at ../src/main.c line 530

Comment 5 André Klapper 2017-12-08 20:08:45 UTC
Please provide a complete stacktrace (thread apply all bt full), not only one thread. Thanks! :)
Comment 6 Jonas Ådahl 2017-12-11 10:26:01 UTC
Created attachment 365351 [details] [review]
clutter/evdev: Ignore unknown touch points

We might receive touch events for unknown touch points, for example
when starting mutter while touching the screen (resulting in no
touch-down event ever being received). Avoid crashing when this happens
by just dropping these events on the floor.

----

I haven't tested, but suspect this might be the issue.
Comment 7 Carlos Garnacho 2018-01-12 09:47:22 UTC
Comment on attachment 365351 [details] [review]
clutter/evdev: Ignore unknown touch points

Makes sense.
Comment 8 Jonas Ådahl 2018-01-12 11:00:29 UTC
Attachment 365351 [details] pushed as 4e3b26d - clutter/evdev: Ignore unknown touch points