Description of problem: Numerous messages (hundreds), appearing with each mouse click or even touching the touch sensitive surface of the mouse. Could be a regression in the kernel, because I don't have such messages with kernel 4.6, but there are no kernel error messages at all. Version-Release number of selected component (if applicable): kernel-4.7.0-2.fc25.x86_64 libevdev-1.5.1-1.fc24.x86_64 How reproducible: Uncertain. I have three boots in journal using kernel 4.7, one does not contain any reference to libevdev, the other two are full of them. Steps to Reproduce: 1. Click mouse 2. 3. Actual results: Hundreds of complaints in the journal, looks like it happens every mouse click: Jul 28 13:55:14 f24m /usr/libexec/gdm-x-session[1616]: libevdev error in sanitize_event: BUG: Device "mouses" received a double tracking ID -1 in slot 0. Expected results: Not sure. Seems like more debug info to figure out where the problem is and if a fix is needed. I'm not sure if this could be related to this intermittant problem that happens ~dozen times per day where bluetooth devices just stop responding, and I have to turn off WiFi to get them to reconnect. Additional info:
when this happens, run evemu-record against the device and see if the issue appears there too. monitor the journal at the same time, if the message pops up anywhere while you're recording, attach the output here. my current guess is that you're getting two touch end events, possibly caused by the BT disconnect.
Created attachment 1186441 [details] evemu-record I get the attached when I touch the surface of the mouse, and that evemu-record output stops right about at the same time the journal records: Aug 01 08:41:40 f24m org.gnome.Shell.desktop[18836]: libevdev error in sanitize_event: BUG: Device "mouses" received a double tracking ID -1 in slot 0. Doing it over and over again, it seems like the libevdev error happens a fraction of a second after the evemu-record output. It's not happening at exactly the same time.
If you're up for it get the libinput repo from git://anongit.freedesktop.org/wayland/libinput and remove the #if 0 in src/evdev.c evdev_process_event(). Then run. then build and run sudo ./tools/event-debug --verbose That should also tell us whether the device disappears or not. I wonder if we're getting a SYN_DROPPED and it's unhappy but that should generate a message too.
By "remove the #if 0" do you mean remove that whole sections, lines 1448 to 1459? Or just uncomment 1448:#if 0 and 1459:#endif?
OK so I removed the whole section, lines 1448-1459, built it and then: [chris@f24m libinput]$ sudo ./tools/event-debug --verbose input device 'Power Button', /dev/input/event3 is tagged by udev as: Keyboard input device 'Power Button', /dev/input/event3 is a keyboard input device 'Power Button', /dev/input/event1 is tagged by udev as: Keyboard input device 'Power Button', /dev/input/event1 is a keyboard input device 'Lid Switch', /dev/input/event0 not tagged as input device failed to create input device '/dev/input/event0'. input device 'Sleep Button', /dev/input/event2 is tagged by udev as: Keyboard input device 'Sleep Button', /dev/input/event2 is a keyboard input device 'HDA ATI HDMI HDMI/DP,pcm=3', /dev/input/event12 not tagged as input device failed to create input device '/dev/input/event12'. event8: tagged as LIBINPUT_MODEL_APPLE_MAGICMOUSE input device 'mouses', /dev/input/event8 is tagged by udev as: Mouse input device 'mouses', /dev/input/event8 is a pointer caps event4: tagged as LIBINPUT_MODEL_APPLE_INTERNAL_KEYBOARD input device 'Apple Inc. Apple Internal Keyboard / Trackpad', /dev/input/event4 is tagged by udev as: Keyboard input device 'Apple Inc. Apple Internal Keyboard / Trackpad', /dev/input/event4 is a keyboard event10: tagged as LIBINPUT_MODEL_APPLE_TOUCHPAD input device 'bcm5974', /dev/input/event10 is tagged by udev as: Touchpad Touchscreen thumb: enabled thumb detection on 'bcm5974' input device 'bcm5974', /dev/input/event10 is a touchpad palm: dwt activated with bcm5974<->Apple Inc. Apple Internal Keyboard / Trackpad input device 'FaceTime HD Camera (Built-in)', /dev/input/event11 is tagged by udev as: Keyboard input device 'FaceTime HD Camera (Built-in)', /dev/input/event11 is a keyboard input device 'HDA Intel PCH Line', /dev/input/event13 not tagged as input device failed to create input device '/dev/input/event13'. input device 'HDA Intel PCH Headphone', /dev/input/event14 not tagged as input device failed to create input device '/dev/input/event14'. input device 'HDA Intel PCH SPDIF In', /dev/input/event15 not tagged as input device failed to create input device '/dev/input/event15'. input device 'Apple Computer, Inc. IR Receiver', /dev/input/event5 is tagged by udev as: Keyboard input device 'Apple Computer, Inc. IR Receiver', /dev/input/event5 is a keyboard input device 'Apple, Inc Apple Keyboard', /dev/input/event7 is tagged by udev as: Keyboard input device 'Apple, Inc Apple Keyboard', /dev/input/event7 is a keyboard input device 'Apple, Inc Apple Keyboard', /dev/input/event9 is tagged by udev as: Keyboard input device 'Apple, Inc Apple Keyboard', /dev/input/event9 is a keyboard input device 'applesmc', /dev/input/event6 not tagged as input device failed to create input device '/dev/input/event6'. event3 DEVICE_ADDED Power Button seat0 default group1 cap:k event1 DEVICE_ADDED Power Button seat0 default group2 cap:k event2 DEVICE_ADDED Sleep Button seat0 default group3 cap:k event8 DEVICE_ADDED mouses seat0 default group4 cap:p left scroll-nat scroll-button event4 DEVICE_ADDED Apple Inc. Apple Internal Keyboard / Trackpad seat0 default group5 cap:k event10 DEVICE_ADDED bcm5974 seat0 default group6 cap:pg size 106.70/74.78mm tap(dl off) left scroll-nat scroll-2fg-edge click-buttonareas-clickfinger dwt-on event11 DEVICE_ADDED FaceTime HD Camera (Built-in) seat0 default group7 cap:k event5 DEVICE_ADDED Apple Computer, Inc. IR Receiver seat0 default group8 cap:k event7 DEVICE_ADDED Apple, Inc Apple Keyboard seat0 default group9 cap:k event9 DEVICE_ADDED Apple, Inc Apple Keyboard seat0 default group9 cap:k event7 KEYBOARD_KEY +3.59s KEY_ENTER (28) pressed event7 KEYBOARD_KEY +3.65s KEY_ENTER (28) released event7 KEYBOARD_KEY +3.77s KEY_ENTER (28) pressed event7 KEYBOARD_KEY +3.82s KEY_ENTER (28) released event7 KEYBOARD_KEY +3.91s KEY_ENTER (28) pressed event7 KEYBOARD_KEY +3.95s KEY_ENTER (28) released event7 KEYBOARD_KEY +4.03s KEY_ENTER (28) pressed event7 KEYBOARD_KEY +4.07s KEY_ENTER (28) released libevdev error in sanitize_event: BUG: Device "mouses" received a double tracking ID -1 in slot 8. libevdev error in sanitize_event: BUG: Device "mouses" received a double tracking ID -1 in slot 8. libevdev error in sanitize_event: BUG: Device "mouses" received a double tracking ID -1 in slot 8. libevdev error in sanitize_event: BUG: Device "mouses" received a double tracking ID -1 in slot 8. libevdev error in sanitize_event: BUG: Device "mouses" received a double tracking ID -1 in slot 8. libevdev error in sanitize_event: BUG: Device "mouses" received a double tracking ID -1 in slot 8. libevdev error in sanitize_event: BUG: Device "mouses" received a double tracking ID -1 in slot 8. libevdev error in sanitize_event: BUG: Device "mouses" received a double tracking ID -1 in slot 8. libevdev error in sanitize_event: BUG: Device "mouses" received a double tracking ID -1 in slot 8. libevdev error in sanitize_event: BUG: Device "mouses" received a double tracking ID -1 in slot 8. event8 POINTER_AXIS +13.27s vert 0.00 horiz 15.00* event8 POINTER_AXIS +13.31s vert 0.00 horiz 15.00* event8 POINTER_AXIS +13.35s vert -15.00* horiz 0.00 event8 POINTER_AXIS +13.44s vert 0.00 horiz -15.00* libevdev error in sanitize_event: BUG: Device "mouses" received a double tracking ID -1 in slot 8. event7 KEYBOARD_KEY +14.62s KEY_LEFTCTRL (29) pressed event7 KEYBOARD_KEY +14.64s KEY_C (46) pressed and ran 'sudo . Each of the double tracking messages coincides with a finger tap on the mouse (not a button press, just physical contact with the surface of the mouse).
I can't figure out if the correct kernel driver is even being used for this Apple Magic Mouse. I see drivers/hid/hid-magicmouse.c but I don't see a ko.gz in /usr/lib/modules/4.8.0-0.rc1.git0.1.fc25.x86_64/kernel/drivers/hid/ (or any other kernel version, nor in the modules-extra package). [chris@f24m Downloads]$ lsmod | grep magic [chris@f24m Downloads]$ lsmod | grep hid hidp 24576 1 bluetooth 520192 36 btrtl,hidp,btintel,bnep,btbcm,rfcomm,btusb hid_apple 16384 0 hid_appleir 16384 0
OK well this should answer this question... $ grep -i magic /boot/config-4.8.0-0.rc1.git0.1.fc25.x86_64 CONFIG_HID_MAGICMOUSE=y dmesg | grep -i magic [ 18.916094] magicmouse 0005:05AC:030D.0008: unknown main item tag 0x0 [ 18.919836] magicmouse 0005:05AC:030D.0008: input,hidraw1: BLUETOOTH HID v3.06 Mouse [mouses] on e0:f8:47:39:5d:df I guess it gets rolled into the bluetooth kernel module but I can't tell.
(In reply to Chris Murphy from comment #4) > By "remove the #if 0" do you mean remove that whole sections, lines 1448 to > 1459? Or just uncomment 1448:#if 0 and 1459:#endif? just uncomment the if0 and endif so we get to see the debug output. removing the section has no effect, anything between if 0 is already compiled out anyway.
It builds without the change, it fails with # removed from 1448 and 1459. [chris@f24m libinput]$ make make all-recursive make[1]: Entering directory '/home/chris/libinput' Making all in src make[2]: Entering directory '/home/chris/libinput/src' CC libinput_la-libinput.lo CC libinput_la-evdev.lo evdev.c: In function ‘evdev_process_event’: evdev.c:1448:4: error: expected ‘(’ before numeric constant if 0 ^ evdev.c:1448:4: warning: statement with no effect [-Wunused-value] evdev.c:1459:1: error: unknown type name ‘endif’ endif ^~~~~ evdev.c:1461:10: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘->’ token dispatch->interface->process(dispatch, device, e, time); ^~ evdev.c:1446:11: warning: unused variable ‘time’ [-Wunused-variable] uint64_t time = s2us(e->time.tv_sec) + e->time.tv_usec; ^~~~ evdev.c:1445:25: warning: unused variable ‘dispatch’ [-Wunused-variable] struct evdev_dispatch *dispatch = device->dispatch; ^~~~~~~~ Makefile:626: recipe for target 'libinput_la-evdev.lo' failed make[2]: *** [libinput_la-evdev.lo] Error 1 make[2]: Leaving directory '/home/chris/libinput/src' Makefile:430: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/home/chris/libinput' Makefile:362: recipe for target 'all' failed make: *** [all] Error 2
The line "#if 0" is a preprocessor directive, not a comment like in e.g. shell scripts. So the code #if 0 foo() #endif is equivalent to while (false) { foo(); } except that it'll never end up in code. To enable the code you need to remove the directive, not just the # character (this would make it non-preprocessor and since it's not valid C the compiler then gets confused). So in short, remove both #if 0 and #endif.
git pull > Updating 96b3489..d48cee0 > then remove #if at 1592 - and #endif at 1603 > make completes with no errors. [chris@f24m libinput]$ sudo tools/event-debug --verbose [sudo] password for chris: input device 'Power Button', /dev/input/event3 is tagged by udev as: Keyboard input device 'Power Button', /dev/input/event3 is a keyboard input device 'Power Button', /dev/input/event1 is tagged by udev as: Keyboard input device 'Power Button', /dev/input/event1 is a keyboard input device 'Lid Switch', /dev/input/event0 not tagged as input device not using input device '/dev/input/event0'. input device 'Sleep Button', /dev/input/event2 is tagged by udev as: Keyboard input device 'Sleep Button', /dev/input/event2 is a keyboard input device 'HDA ATI HDMI HDMI/DP,pcm=3', /dev/input/event11 not tagged as input device not using input device '/dev/input/event11'. event7: tagged as LIBINPUT_MODEL_APPLE_MAGICMOUSE input device 'mouses', /dev/input/event7 is tagged by udev as: Mouse input device 'mouses', /dev/input/event7 is a pointer caps event5: tagged as LIBINPUT_MODEL_APPLE_INTERNAL_KEYBOARD input device 'Apple Inc. Apple Internal Keyboard / Trackpad', /dev/input/event5 is tagged by udev as: Keyboard input device 'Apple Inc. Apple Internal Keyboard / Trackpad', /dev/input/event5 is a keyboard event10: tagged as LIBINPUT_MODEL_APPLE_TOUCHPAD input device 'bcm5974', /dev/input/event10 is tagged by udev as: Touchpad Touchscreen thumb: enabled thumb detection on 'bcm5974' input device 'bcm5974', /dev/input/event10 is a touchpad palm: dwt activated with bcm5974<->Apple Inc. Apple Internal Keyboard / Trackpad input device 'Apple, Inc Apple Keyboard', /dev/input/event8 is tagged by udev as: Keyboard input device 'Apple, Inc Apple Keyboard', /dev/input/event8 is a keyboard input device 'Apple, Inc Apple Keyboard', /dev/input/event9 is tagged by udev as: Keyboard input device 'Apple, Inc Apple Keyboard', /dev/input/event9 is a keyboard input device 'FaceTime HD Camera (Built-in)', /dev/input/event15 is tagged by udev as: Keyboard input device 'FaceTime HD Camera (Built-in)', /dev/input/event15 is a keyboard input device 'HDA Intel PCH Line', /dev/input/event12 not tagged as input device not using input device '/dev/input/event12'. input device 'HDA Intel PCH Headphone', /dev/input/event13 not tagged as input device not using input device '/dev/input/event13'. input device 'HDA Intel PCH SPDIF In', /dev/input/event14 not tagged as input device not using input device '/dev/input/event14'. input device 'Apple Computer, Inc. IR Receiver', /dev/input/event4 is tagged by udev as: Keyboard input device 'Apple Computer, Inc. IR Receiver', /dev/input/event4 is a keyboard input device 'applesmc', /dev/input/event6 not tagged as input device not using input device '/dev/input/event6'. event3 DEVICE_ADDED Power Button seat0 default group1 cap:k event1 DEVICE_ADDED Power Button seat0 default group2 cap:k event2 DEVICE_ADDED Sleep Button seat0 default group3 cap:k event7 DEVICE_ADDED mouses seat0 default group4 cap:p left scroll-nat scroll-button event5 DEVICE_ADDED Apple Inc. Apple Internal Keyboard / Trackpad seat0 default group5 cap:k event10 DEVICE_ADDED bcm5974 seat0 default group6 cap:pg size 106.70/74.78mm tap(dl off) left scroll-nat scroll-2fg-edge click-buttonareas-clickfinger dwt-on event8 DEVICE_ADDED Apple, Inc Apple Keyboard seat0 default group7 cap:k event9 DEVICE_ADDED Apple, Inc Apple Keyboard seat0 default group7 cap:k event15 DEVICE_ADDED FaceTime HD Camera (Built-in) seat0 default group8 cap:k event4 DEVICE_ADDED Apple Computer, Inc. IR Receiver seat0 default group9 cap:k event8 EV_MSC MSC_SCAN 458792 event8 EV_KEY KEY_ENTER 0 -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ libevdev error in sanitize_event: BUG: Device "mouses" received a double tracking ID -1 in slot 4. -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ libevdev error in sanitize_event: BUG: Device "mouses" received a double tracking ID -1 in slot 4. -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ libevdev error in sanitize_event: BUG: Device "mouses" received a double tracking ID -1 in slot 4. -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ libevdev error in sanitize_event: BUG: Device "mouses" received a double tracking ID -1 in slot 4. -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ -------------- EV_SYN ------------ libevdev error in sanitize_event: BUG: Device "mouses" received a double tracking ID -1 in slot 4. -------------- EV_SYN ------------ event8 EV_MSC MSC_SCAN 458976 event8 EV_KEY KEY_LEFTCTRL 1 -------------- EV_SYN ------------ event8 KEYBOARD_KEY +9.99s KEY_LEFTCTRL (29) pressed event8 EV_MSC MSC_SCAN 458758 event8 EV_KEY KEY_C 1 -------------- EV_SYN ------------ event8 KEYBOARD_KEY +10.05s KEY_C (46) pressed
weird? these are just empty event sequences. do you really not see any events other than the EV_SYN? you can run with --device /dev/input/event7 to only hook onto the mouse, that way you don't have to worry about keystrokes getting logged either.
Created attachment 1190470 [details] event-debug 2 (In reply to Peter Hutterer from comment #12) > weird? these are just empty event sequences. do you really not see any > events other than the EV_SYN? I copy pasted the output from Terminal with no modifications, so you're seeing the same thing I did. Attached is output from sudo tools/event-debug --verbose --device /dev/input/event7. I inserted three returns in between each interaction with the device. There are four interactions: three taps where I touch the surface of the mouse, no click, and then I drew a circle (with my finger) on the surface of the mouse. So it looks like the BUG message is appearing in every case at the very end of the interaction.
ok, this simply doesn't make any sense. the kernel should filter empty SYN_REPORTS and if there's a bug somewhere I don't see why it would only complain some of the time. Try this scratch build here please: http://koji.fedoraproject.org/koji/taskinfo?taskID=15273428 *DON'T RESTART X* after installing, it'll log any input as error to the log file, including your key strokes and thus your password. just downgrade immediately after collecting the data. And do that with sudo libinput-debug-events --device /dev/input/event7 (or whatever your touchpad is)
Created attachment 1191359 [details] event-debug 3 I'm not seeing a change. Also tested Wayland and X, no change. And also tried kernel 4.7.0, 4.6.4, and 4.5.7 and they all behave this way now. So I'm not sure why this started when it started.
ok, last request: please install evtest and run that. That won't show the warnings but it should show whether the issue is in libevdev.
Created attachment 1191402 [details] evtest.log
ok, that one at least shows normal motion data as well, thanks. I take it you saw the warning in the log while collecting this event stream? you can have evtest and something else running at the same time without ill effects.
Created attachment 1191405 [details] screenshot split evtest in one pane and journalctl -f in the other; the livevdev error is essentially constant because my finger is almost always on the mouse for one reason or another (click or scroll or swipe or whatever) and every touch on the surface of the mouse generates the error. So there are thousands of these per hour in the journal. But yeah if I tap once while evtest runs you get what's in this screen shot.
ok, found it. this is only triggered by libinput, not by evemu or libevdev directly. libinput has code for this particular device: the magic mouse is a relative mouse but also sends touch events. since we don't care about those (and don't want them to interfere) libinput disables the EV_ABS type completely. This should cause the events to be ignored but something inside libevdev still processes (some?) of them and that's the cause for this error message.
libevdev-1.5.2-2.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2016-20e4d6cb3d
libevdev-1.5.2-2.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-18415c28fb
libevdev-1.5.2-2.fc25 fixed the problem.
libevdev-1.5.2-2.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-20e4d6cb3d
libevdev-1.5.2-2.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-18415c28fb
libevdev-1.5.2-2.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report.
libevdev-1.5.3-1.fc25 has been submitted as an update to Fedora 25. https://bodhi.fedoraproject.org/updates/FEDORA-2016-5b8a79684f
libevdev-1.5.3-1.fc25 has been pushed to the Fedora 25 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-5b8a79684f