Bug 106786

Summary: Magic Trackpad stopped to work with libinput 1.10.7
Product: Wayland Reporter: Mario <mario.diraimondo>
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED MOVED QA Contact:
Severity: normal    
Priority: medium CC: peter.hutterer
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: libinput-debug-events output using libinput 1.10.7
'libinput debug-events --verbose' output with interaction with the MTP

Description Mario 2018-06-02 18:57:02 UTC
Created attachment 139971 [details]
libinput-debug-events output using libinput 1.10.7

On my Arch Linux switching on libinput 1.10.7 made my external Magic Trackpad completely "muted". The device continues to (bluetooth) connect but it doesn't raise any event. To make all works again is enough to switch back to libinput 1.10.6. It is very strange...

In attach the output of libinput-debug-events using libinput 1.10.7. The output is almost the same using libinput 1.10.6.

I can provide any further detail that can help.
Comment 1 Peter Hutterer 2018-06-03 22:48:21 UTC
What does libinput debug-events --verbose say when you interact with the device?
Comment 2 Mario 2018-06-04 08:20:01 UTC
(In reply to Peter Hutterer from comment #1)
> What does libinput debug-events --verbose say when you interact with the
> device?

Nothing. See the new attachment.
Comment 3 Mario 2018-06-04 08:21:25 UTC
Created attachment 140002 [details]
'libinput debug-events --verbose' output with interaction with the MTP
Comment 4 Peter Hutterer 2018-06-04 09:19:11 UTC
very weird. evemu-record shows events? Please attach an event sequence here from that device.
Comment 5 Mario 2018-06-04 09:50:13 UTC
Ok, it looks that the problem is the use of libinput-gestures (that uses libinput-debug-events to gather events).

Let's see what I discovered step-by-step:
$ evemu-record /dev/input/event23
error: this device is grabbed and I cannot record events
see the evemu-record man page for more information

$ fuser -v /dev/input/event23
                     USER        PID ACCESS COMMAND
/dev/input/event23:  mario      1353 F.... libinput-debug-
                     mario      1389 F.... gnome-shell

$ ps aux | grep libinput
mario     1337  0.1  0.0  41556 11856 ?        Ss   11:35   0:00 /usr/bin/python3 /home/mario/.bin/libinput-gestures
mario     1353  0.2  0.0  35736  4252 ?        S    11:35   0:00 libinput-debug-events

$ systemctl --user stop libinput-gestures.service

(external trackpad started to work! the internal one of the XPS 13 worked in any case with any version of libinput)

$ systemctl --user start libinput-gestures.service

(now libinput-gestures gather gestures from both the trackpads)

It looks something changed in libinput and this create badly conflict with the (weird) method used by libinput-gestures to gather event notifications.

Note the I use libinput-gestures option 'device all' in order to catch events from multiple devices: including the device attached after service launch.
I think this is the schedule in my system:
- libinput-gestures launch libinput-debug-events;
- the external bluetooth device is later connected.

Is it normal that libinput doesn't make the external device to work if an instance of libinput-debug-events is running? As proof of this: if after the previous steps (so with everything working) I switch off the bluetooth trackpad, wait some seconds and reconnect it: the problem is there again.
Comment 6 Peter Hutterer 2018-06-04 10:18:34 UTC
tbh, no idea where this comes from. libinput itself doesn't grab the device, libinput debug-events has an option to grab it but it's off by default. libinput-gestures doesn't appear to be using that option though. And I can certainly run two libinput debug-events instances here without issues.

I can't find anything in the libinput-gestures git history that used a grab, so *shrugh* I don't know, sorry.
Comment 7 Mario 2018-06-04 10:37:18 UTC
The way to reproduce the bug using, for example, an external bluetooth device like mine:
- stop, in my case, any libinput-gesture instance;
- disconnect the device;
- launch 'libinput-debug-events' without options;
- connect the device.

Here on trackpad usage: from the libinput-debug-events output I can see the device to be removed/reattached and the correct events reported; the mouse pointer is completely stuck. If I stop libinput-debug-events, everything starts to work....

Can you reproduce it?

libinput-debug-events output:
-event3   DEVICE_ADDED     Power Button                      seat0 default group1  cap:k                                                                                                                             
-event4   DEVICE_ADDED     Video Bus                         seat0 default group2  cap:k                                                                                                                             
-event1   DEVICE_ADDED     Power Button                      seat0 default group3  cap:k                                                                                                                             
-event0   DEVICE_ADDED     Lid Switch                        seat0 default group4  cap:S                                                                                                                             
 event0   SWITCH_TOGGLE     +0.01s      switch lid state 1                                                                                                                                                           
-event2   DEVICE_ADDED     Sleep Button                      seat0 default group5  cap:k                                                                                                                             
-event6   DEVICE_ADDED     Yubico Yubikey NEO OTP+U2F+CCID   seat0 default group6  cap:k                                                                                                                             
-event7   DEVICE_ADDED     ELAN Touchscreen                  seat0 default group7  cap:t  size 305x170mm calib                                                                                                       
-event22  DEVICE_ADDED     Integrated_Webcam_HD: Integrate   seat0 default group8  cap:k                                                                                                                             
-event12  DEVICE_ADDED     DLL0704:01 06CB:76AE Touchpad     seat0 default group9  cap:pg  size 101x57mm tap(dl off) left scroll-nat scroll-2fg-edge click-buttonareas-clickfinger dwt-on                            
-event21  DEVICE_ADDED     Webcam C170: Webcam C170          seat0 default group10 cap:k                                                                                                                             
-event23  DEVICE_ADDED     Trackpad di MkMini                seat0 default group11 cap:pg  size 132x112mm tap(dl off) left scroll-nat scroll-2fg-edge click-buttonareas-clickfinger                                  
-event8   DEVICE_ADDED     Apple Inc. Apple Keyboard         seat0 default group12 cap:k                                                                                                                             
-event9   DEVICE_ADDED     Apple Inc. Apple Keyboard         seat0 default group12 cap:k                                                                                                                             
-event15  DEVICE_ADDED     HDA Intel PCH Headphone Mic       seat0 default group13 cap:                                                                                                                              
-event16  DEVICE_ADDED     HDA Intel PCH HDMI/DP,pcm=3       seat0 default group13 cap:                                                                                                                              
-event17  DEVICE_ADDED     HDA Intel PCH HDMI/DP,pcm=7       seat0 default group13 cap:                                                                                                                              
-event18  DEVICE_ADDED     HDA Intel PCH HDMI/DP,pcm=8       seat0 default group13 cap:                                                                                                                              
-event19  DEVICE_ADDED     HDA Intel PCH HDMI/DP,pcm=9       seat0 default group13 cap:                                                                                                                              
-event20  DEVICE_ADDED     HDA Intel PCH HDMI/DP,pcm=10      seat0 default group13 cap:                                                                                                                              
-event10  DEVICE_ADDED     Intel HID events                  seat0 default group14 cap:k                                                                                                                             
-event13  DEVICE_ADDED     Dell WMI hotkeys                  seat0 default group15 cap:k                                                                                                                             
-event5   DEVICE_ADDED     AT Translated Set 2 keyboard      seat0 default group16 cap:k                                                                                                                             
-event23  DEVICE_REMOVED   Trackpad di MkMini                seat0 default group11 cap:pg  size 132x112mm                                                                                                            
-event23  DEVICE_ADDED     Trackpad di MkMini                seat0 default group17 cap:pg  size 132x112mm tap(dl off) left scroll-nat scroll-2fg-edge click-buttonareas-clickfinger
 event23  POINTER_MOTION   +23.96s        0.13/  0.00
 event23  POINTER_MOTION   +23.98s        0.20/  0.00
 event23  POINTER_MOTION   +24.07s        0.00/  0.17
 event23  POINTER_MOTION   +24.10s       -0.36/  0.18
 event23  POINTER_MOTION   +24.13s       -0.48/  0.00
 event23  POINTER_MOTION   +24.14s       -0.52/ -0.54
 event23  POINTER_MOTION   +24.15s       -0.58/ -0.60
 event23  POINTER_MOTION   +24.16s       -0.63/ -0.96
 event23  POINTER_MOTION   +24.17s        0.00/ -3.24
 event23  POINTER_MOTION   +24.18s        0.00/ -0.97
 event23  POINTER_MOTION   +24.19s        0.00/ -3.54
 ......
Comment 8 Peter Hutterer 2018-06-05 01:13:23 UTC
Can you reproduce it with upstream libinput? Just build it and run libinput debug-events from the build dir (sudo ./builddir/libinput-debug-events).

Run evemu-record after starting debug-events - is the device listed as grabbed?
Comment 9 GitLab Migration User 2018-06-05 10:01:21 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org'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.freedesktop.org/libinput/libinput/issues/26.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.