FS#57523 - [libinput] Swiping with multiple fingers left or right causes X to crash.

Attached to Project: Arch Linux
Opened by Samuel Vargas (samulus) - Thursday, 15 February 2018, 16:27 GMT
Last edited by Eli Schwartz (eschwartz) - Wednesday, 07 March 2018, 18:00 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Andreas Radke (AndyRTR)
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 8
Private No

Details

Description:

After I upgraded libinput from 1.9.4-1 to 1.10.0-1 I accidentally
scrolled with multiple fingers on the touchpad and caused X to crash.

It only happens when I swipe to the left or right with 3-4 fingers a few times
in a row. I was able stop the crashes by downgrading libinput back to 1.9.4-1 and can no longer reproduce it.

This is on a Lenovo P50 laptop. It happens with and without an additional USB mouse plugged in.

Here is the backtrace X produced:


[ 744.251] (EE)
[ 744.251] (EE) Backtrace:
[ 744.252] (EE) 0: /usr/lib/xorg-server/Xorg (OsLookupColor+0x139) [0x55d17b0fce99]
[ 744.253] (EE) 1: /usr/lib/libpthread.so.0 (funlockfile+0x50) [0x7f0e837dce1f]
[ 744.254] (EE) 2: /usr/lib/libc.so.6 (gsignal+0x110) [0x7f0e83448860]
[ 744.255] (EE) 3: /usr/lib/libc.so.6 (abort+0x1c9) [0x7f0e83449ec9]
[ 744.256] (EE) 4: /usr/lib/libc.so.6 (__assert_fail_base+0x14c) [0x7f0e834410bc]
[ 744.257] (EE) 5: /usr/lib/libc.so.6 (__assert_fail+0x43) [0x7f0e83441133]
[ 744.257] (EE) 6: /usr/lib/libinput.so.10 (libinput_event_get_pointer_event+0xec9e) [0x7f0e7c25af5e]
[ 744.257] (EE) 7: /usr/lib/libinput.so.10 (libinput_event_get_pointer_event+0xf908) [0x7f0e7c25fa48]
[ 744.257] (EE) 8: /usr/lib/libinput.so.10 (libinput_ref+0x448) [0x7f0e7c23c1d8]
[ 744.257] (EE) 9: /usr/lib/libinput.so.10 (libinput_dispatch+0x5f) [0x7f0e7c23ba6f]
[ 744.257] (EE) 10: /usr/lib/xorg/modules/input/libinput_drv.so (_init+0x29b9) [0x7f0e7c7955b9]
[ 744.258] (EE) 11: /usr/lib/xorg-server/Xorg (input_unlock+0x293) [0x55d17b0fb3d3]
[ 744.258] (EE) 12: /usr/lib/xorg-server/Xorg (OsCleanup+0x621) [0x55d17b0fde01]
[ 744.258] (EE) 13: /usr/lib/xorg-server/Xorg (input_unlock+0xde) [0x55d17b0fafce]
[ 744.258] (EE) 14: /usr/lib/libpthread.so.0 (start_thread+0xdc) [0x7f0e837d208c]
[ 744.258] (EE) 15: /usr/lib/libc.so.6 (clone+0x3f) [0x7f0e83509eb8]

This task depends upon

Closed by  Eli Schwartz (eschwartz)
Wednesday, 07 March 2018, 18:00 GMT
Reason for closing:  Fixed
Additional comments about closing:  testing/libinput 1.10.2-1
Comment by Andreas Radke (AndyRTR) - Thursday, 15 February 2018, 18:30 GMT
Maybe a duplicate of  FS#57512 ? Please report it upstream.
Comment by Daniele Del Sale (delsi) - Friday, 16 February 2018, 12:52 GMT
Same problem here with my Lenovo T420

Xorg.0.log:

419 [ 3440.265] (II) Axis 0x1 value 859 is outside expected range [1237, 4990]
420 See https://wayland.freedesktop.org/libinput/doc/1.10.0//absolute_coordinate_ranges.html for details
421 [ 3751.724] (EE)
422 [ 3751.724] (EE) Backtrace:
423 [ 3751.725] (EE) 0: /usr/lib/xorg-server/Xorg (OsLookupColor+0x139) [0x564242612e99]
424 [ 3751.726] (EE) 1: /usr/lib/libpthread.so.0 (funlockfile+0x50) [0x7fde2073be1f]
425 [ 3751.727] (EE) 2: /usr/lib/libc.so.6 (gsignal+0x110) [0x7fde203a7860]
426 [ 3751.729] (EE) 3: /usr/lib/libc.so.6 (abort+0x1c9) [0x7fde203a8ec9]
427 [ 3751.730] (EE) 4: /usr/lib/libc.so.6 (__assert_fail_base+0x14c) [0x7fde203a00bc]
428 [ 3751.732] (EE) 5: /usr/lib/libc.so.6 (__assert_fail+0x43) [0x7fde203a0133]
429 [ 3751.732] (EE) 6: /usr/lib/libinput.so.10 (libinput_event_get_pointer_event+0xec9e) [0x7fde19222f5e]
430 [ 3751.732] (EE) 7: /usr/lib/libinput.so.10 (libinput_event_get_pointer_event+0xf908) [0x7fde19227a48]
431 [ 3751.733] (EE) 8: /usr/lib/libinput.so.10 (libinput_ref+0x448) [0x7fde192041d8]
432 [ 3751.733] (EE) 9: /usr/lib/libinput.so.10 (libinput_dispatch+0x5f) [0x7fde19203a6f]
433 [ 3751.734] (EE) 10: /usr/lib/xorg/modules/input/libinput_drv.so (_init+0x29b9) [0x7fde194675b9]
434 [ 3751.735] (EE) 11: /usr/lib/xorg-server/Xorg (input_unlock+0x293) [0x5642426113d3]
435 [ 3751.735] (EE) 12: /usr/lib/xorg-server/Xorg (OsCleanup+0x621) [0x564242613e01]
436 [ 3751.735] (EE) 13: /usr/lib/xorg-server/Xorg (input_unlock+0xde) [0x564242610fce]
437 [ 3751.736] (EE) 14: /usr/lib/libpthread.so.0 (start_thread+0xdc) [0x7fde2073108c]
438 [ 3751.736] (EE) 15: /usr/lib/libc.so.6 (clone+0x3f) [0x7fde20468eb8]
439 [ 3751.736] (EE)
440 [ 3751.736] (EE)
Comment by Reinardo Escobar (wincraft71) - Saturday, 17 February 2018, 06:39 GMT
I had to downgrade libinput and restart Xorg to get it working and in the process lost the log, but the error before Xorg crashes is "Synaptics TouchPad: libinput error: kernel bug: Touch jump detected and discarded."
Comment by Daniele Del Sale (delsi) - Tuesday, 20 February 2018, 15:54 GMT
journalctl output after Xorg crash

Feb 20 14:21:05 arch kernel: perf: interrupt took too long (2533 > 2500), lowering kernel.perf_event_max_sampl e_rate to 78000
564 Feb 20 14:35:52 arch kernel: perf: interrupt took too long (3176 > 3166), lowering kernel.perf_event_max_sampl e_rate to 62000
565 Feb 20 14:39:07 arch systemd[1]: Created slice system-systemd\x2dcoredump.slice.
566 Feb 20 14:39:07 arch systemd[1]: Started Process Core Dump (PID 5547/UID 0).
567 Feb 20 14:39:08 arch systemd-coredump[5548]: Process 630 (Xorg) of user 1000 dumped core.
568
569 Stack trace of thread 633:
570 #0 0x00007f07c142d860 raise (libc.so.6)
571 #1 0x00007f07c142eec9 abort (libc.so.6)
572 #2 0x00005631b44adcea OsAbort (Xorg)
573 #3 0x00005631b4389674 ddxGiveUp (Xorg)
574 #4 0x00005631b44b37e2 n/a (Xorg)
575 #5 0x00005631b44b4625 FatalError (Xorg)
576 #6 0x00005631b44aadde n/a (Xorg)
577 #7 0x00007f07c17c1dd0 __restore_rt (libpthread.so.0)
578 #8 0x00007f07c142d860 raise (libc.so.6)
579 #9 0x00007f07c142eec9 abort (libc.so.6)
580 #10 0x00007f07c14260bc __assert_fail_base (libc.so.6)
581 #11 0x00007f07c1426133 __assert_fail (libc.so.6)
582 #12 0x00007f07ba29d62e n/a (libinput.so.10)
583 #13 0x00007f07ba29e298 n/a (libinput.so.10)
584 #14 0x00007f07ba28a188 n/a (libinput.so.10)
585 #15 0x00007f07ba289a6f libinput_dispatch (libinput.so.10)
586 #16 0x00007f07ba4eac19 n/a (libinput_drv.so)
587 #17 0x00005631b44a9163 n/a (Xorg)
588 #18 0x00005631b44ab861 n/a (Xorg)
589 #19 0x00005631b44a8fae n/a (Xorg)
590 #20 0x00007f07c17b708c start_thread (libpthread.so.0)
591 #21 0x00007f07c14eee7f __clone (libc.so.6)
592
593 Stack trace of thread 630:
594 #0 0x00007f07c14eefe6 epoll_pwait (libc.so.6)
595 #1 0x00005631b44ab817 n/a (Xorg)
596 #2 0x00005631b44a470b WaitForSomething (Xorg)
597 #3 0x00005631b4344fc3 n/a (Xorg)
598 #4 0x00005631b4349260 n/a (Xorg)
599 #5 0x00007f07c1419f4a __libc_start_main (libc.so.6)
600 #6 0x00005631b4332f0a _start (Xorg)
Comment by Vishal Belsare (vishalbelsare) - Wednesday, 21 February 2018, 17:28 GMT
https://bugs.freedesktop.org/show_bug.cgi?id=105160#c4

Upstream suggested a patch at https://bugs.freedesktop.org/show_bug.cgi?id=105160#c3 which I have not tested. Trying downgrading libinput to 1.9.4-1 until downstream packages reflect any upstream fix(es).

Feb 20 16:28:28 einstein org.gnome.Shell.desktop[19485]: gnome-shell: ../libinput-1.10.0/src/evdev-mt-touchpad-tap.c:1073: tp_tap_handlle_state: Assertion `tp->tap.nfingers_down <= tp->nfingers_down' failed.
Feb 20 16:28:28 einstein org.gnome.Shell.desktop[19485]: == Stack trace for context 0x5638f1dec000 ==
Feb 20 16:28:29 einstein gnome-terminal-[19854]: Error reading events from display: Broken pipe
Feb 20 16:28:29 einstein evolution-alarm[19716]: Error reading events from display: Broken pipe
Feb 20 16:28:29 einstein org.gnome.Shell.desktop[19485]: (EE)
Feb 20 16:28:29 einstein org.gnome.Shell.desktop[19485]: Fatal server error:
Feb 20 16:28:29 einstein org.gnome.Shell.desktop[19485]: (EE) failed to read Wayland events: Broken pipe
Feb 20 16:28:29 einstein org.gnome.Shell.desktop[19485]: (EE)
Feb 20 16:28:29 einstein systemd[19409]: gnome-terminal-server.service: Main process exited, code=exited, status=1/FAILURE
Feb 20 16:28:29 einstein systemd[19409]: gnome-terminal-server.service: Failed with result 'exit-code'.
Feb 20 16:28:29 einstein gnome-session[19453]: gnome-session-binary[19453]: WARNING: Application 'org.gnome.Shell.desktop' killed by signal 6
Feb 20 16:28:29 einstein gnome-session-binary[19453]: WARNING: Application 'org.gnome.Shell.desktop' killed by signal 6
Feb 20 16:28:29 einstein gnome-session-binary[19453]: Unrecoverable failure in required component org.gnome.Shell.desktop
Comment by revel (revel) - Saturday, 24 February 2018, 04:32 GMT
I had a very similar issue (not sure whether exactly the same, but very likely). Apparently it's already been fixed in git since libinput-git from aur works fine for me, no crashes since the upgrade from yesterday (.g3e77f2e9).
Comment by Timon Walshe-Grey (redtimon) - Saturday, 03 March 2018, 22:54 GMT
Still occurring with libinput 1.10.1-1. I can reproduce it with the method described in the original ticket: "swipe to the left or right with 3-4 fingers a few times in a row".


Xorg.0.log:

[ 17531.190] (EE)
[ 17531.190] (EE) Backtrace:
[ 17531.190] (EE) 0: /usr/lib/xorg-server/Xorg (OsLookupColor+0x139) [0x55cb5c636e99]
[ 17531.191] (EE) 1: /usr/lib/libpthread.so.0 (funlockfile+0x50) [0x7f065be91e1f]
[ 17531.192] (EE) 2: /usr/lib/libc.so.6 (gsignal+0x110) [0x7f065bafd860]
[ 17531.192] (EE) 3: /usr/lib/libc.so.6 (abort+0x1c9) [0x7f065bafeec9]
[ 17531.193] (EE) 4: /usr/lib/libc.so.6 (__assert_fail_base+0x14c) [0x7f065baf60bc]
[ 17531.194] (EE) 5: /usr/lib/libc.so.6 (__assert_fail+0x43) [0x7f065baf6133]
[ 17531.194] (EE) 6: /usr/lib/libinput.so.10 (libinput_event_get_pointer_event+0xebb3) [0x7f06546f0e43]
[ 17531.195] (EE) 7: /usr/lib/libinput.so.10 (libinput_event_get_pointer_event+0xf8e8) [0x7f06546f5a38]
[ 17531.195] (EE) 8: /usr/lib/libinput.so.10 (libinput_ref+0x448) [0x7f06546d21f8]
[ 17531.195] (EE) 9: /usr/lib/libinput.so.10 (libinput_dispatch+0x5f) [0x7f06546d1a8f]
[ 17531.196] (EE) 10: /usr/lib/xorg/modules/input/libinput_drv.so (_init+0x29b9) [0x7f065493d5b9]
[ 17531.196] (EE) 11: /usr/lib/xorg-server/Xorg (input_unlock+0x293) [0x55cb5c6353d3]
[ 17531.196] (EE) 12: /usr/lib/xorg-server/Xorg (OsCleanup+0x621) [0x55cb5c637e01]
[ 17531.196] (EE) 13: /usr/lib/xorg-server/Xorg (input_unlock+0xde) [0x55cb5c634fce]
[ 17531.197] (EE) 14: /usr/lib/libpthread.so.0 (start_thread+0xdc) [0x7f065be8708c]
[ 17531.198] (EE) 15: /usr/lib/libc.so.6 (clone+0x3f) [0x7f065bbbeeb8]
Comment by Andreas Radke (AndyRTR) - Sunday, 04 March 2018, 09:20 GMT
That's probably a different issue - please report this to Peter upstream!
Comment by Timon Walshe-Grey (redtimon) - Sunday, 04 March 2018, 10:40 GMT
Sure, here is the upstream ticket: https://bugs.freedesktop.org/show_bug.cgi?id=105336

Loading...