Bug 1565692

Summary: "Synaptics TM3288-011" received a double tracking ID 85 in slot 0
Product: [Fedora] Fedora Reporter: Christian Kellner <ckellner>
Component: libinputAssignee: Peter Hutterer <peter.hutterer>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 28CC: airlied, bskeggs, btissoir, ckellner, dchen, ewk, hdegoede, ichavero, itamar, i.wont.reply, jarodwilson, jglisse, john.j5live, jonathan, josef, kernel-maint, linville, mchehab, mjg59, oliver, peter.hutterer, steved
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libinput-1.10.4-2.fc28 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-04-27 04:07:54 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
evemu-record log touchpad.log.2018-04-12-21:00:28 none

Description Christian Kellner 2018-04-10 14:37:53 UTC
→ uname -a
Linux x1.local 4.16.0-300.fc28.x86_64 #1 SMP Tue Apr 3 03:44:37 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

From the log:
Apr 10 09:07:40 x1.local /usr/libexec/gdm-x-session[1630]: (EE) libevdev: BUG: Device "Synaptics TM3288-011" received a double tracking ID 15 in slot 0.
Apr 10 09:08:13 x1.local /usr/libexec/gdm-x-session[1630]: (EE) libevdev: BUG: Device "Synaptics TM3288-011" received a double tracking ID 44 in slot 1.
Apr 10 09:08:14 x1.local /usr/libexec/gdm-x-session[1630]: (EE) libevdev: BUG: Device "Synaptics TM3288-011" received a double tracking ID 49 in slot 2.
...
Apr 10 15:53:58 x1.local org.gnome.Shell.desktop[977]: libinput error: libevdev: BUG: Device "Synaptics TM3288-011" received a double tracking ID 85 in slot 0.

Seems to be printed when starting X11/Wayland

Comment 1 Benjamin Tissoires 2018-04-10 14:47:06 UTC
Could you provide an evemu-record of the device when the bug occurs?

Comment 2 Christian Kellner 2018-04-12 19:10:50 UTC
Created attachment 1421027 [details]
evemu-record log touchpad.log.2018-04-12-21:00:28

I think I got one:

Apr 12 21:00:29 x1.local org.gnome.Shell.desktop[1716]: libinput error: libevdev: BUG: Device "Synaptics TM3288-011" received a double tracking ID 141 in slot 0.

Log is from touchpad.log.2018-04-12-21:00:28

Btw, I am also seeing something that might be related:
Apr 12 20:54:02 x1.local org.gnome.Shell.desktop[1716]: libinput error: client bug: timer event17 debounce short: offset negative (-0ms)
[...]
Apr 12 20:53:43 x1.local org.gnome.Shell.desktop[1716]: libinput error: client bug: timer event17 debounce short: offset negative (-4ms)

Comment 3 Benjamin Tissoires 2018-04-13 06:56:14 UTC
Thanks for the logs. There is indeed a new tracking ID without changing slot, and this occurs when there is a new tool type:

E: 0.122769 0003 0035 0620	# EV_ABS / ABS_MT_POSITION_X    620
E: 0.122769 0003 0036 0053	# EV_ABS / ABS_MT_POSITION_Y    53
E: 0.122769 0003 0000 0620	# EV_ABS / ABS_X                620
E: 0.122769 0003 0001 0053	# EV_ABS / ABS_Y                53
E: 0.122769 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +15ms
E: 0.138191 0003 0039 0141	# EV_ABS / ABS_MT_TRACKING_ID   141  <--- here
E: 0.138191 0003 0037 0002	# EV_ABS / ABS_MT_TOOL_TYPE     2
E: 0.138191 0003 0035 0634	# EV_ABS / ABS_MT_POSITION_X    634
E: 0.138191 0003 0036 0055	# EV_ABS / ABS_MT_POSITION_Y    55
E: 0.138191 0003 003a 0078	# EV_ABS / ABS_MT_PRESSURE      78
E: 0.138191 0003 0000 0634	# EV_ABS / ABS_X                634
E: 0.138191 0003 0001 0055	# EV_ABS / ABS_Y                55
E: 0.138191 0003 0018 0078	# EV_ABS / ABS_PRESSURE         78
E: 0.138191 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +16ms

The reason is how input_mt_report_slot_state() reports the change of tool type:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/input/input-mt.c#n154

Peter, do you think this is something that needs to be changed in the kernel or better handled in libinput?

Comment 4 Peter Hutterer 2018-04-16 05:36:49 UTC
I'll have to fix this in libevdev first (it suppresses the double tracking ID), then in libinput to handle that case. The libevdev bit is easy

https://lists.freedesktop.org/archives/input-tools/2018-April/001466.html

Proper handling of this in libinput is going to be nasty, it's just not designed for that. But it's probably fine to just ignore the tracking ID changes in libinput. For the most part, it won't have an effect because we'll pick up the tool type independently.

Comment 5 Peter Hutterer 2018-04-16 22:12:11 UTC
Just for the record: the only effect of the libevdev behaviour here is the log message. The tracking id is transparently discarded and the upper levels of the stack just continue to see a touch point.

In this case, the touch point changes to a palm which should cause libinput to discard the touch's events.

The only real bug that may be exposed by this behaviuor is that in some tap-to-click cases the tap may not trigger correctly as it looks like a continuous touch instead. But here the second touch is a palm anyway and the whole thing is triggered by the touch->palm transition in the kernel. Thus I'd even argue that's the more correct behaviour. The alternative would be to release the touch (causing a tap) and then starting a new touch (now palm) that is ignored. That's worse than missing a tap...

Also, whoah, that case is going to be even nastier to implement in libinput than I thought...

Regarding the timer message:
https://wayland.freedesktop.org/libinput/doc/latest/faq.html#faq_timer_offset

Comment 7 Fedora Update System 2018-04-19 01:40:46 UTC
libinput-1.10.4-2.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-7697fc0b90

Comment 8 Peter Hutterer 2018-04-19 01:45:12 UTC
FTR, I'm changing this bug to libinput. There are a few issues with this device, the one pointed out here is just a side-effect of the real issue.

The kernel creates a new tracking ID when switching to a new ABS_MT_TOOL_TYPE. This causes libevdev to log an error message, a patch to accommodate for that is proposed upstream, see comment #4.

But other than the log message there is no visibie effect, libinput proceeds to treat the device as palm because the tool change suggests so. And herein lies the real problem: this device randomly switches to MT_TOOL_PALM, causing the pointer to randomly stop moving.

Hence I'm switching this to libinput, we need a quirk to ignore this on the Lenovo Carbon X1 6th. That's what the libinput build in comment #7 fixes.

Comment 9 Fedora Update System 2018-04-19 08:55:14 UTC
libinput-1.10.4-2.fc28 has been pushed to the Fedora 28 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-2018-7697fc0b90

Comment 10 Fedora Update System 2018-04-27 04:07:54 UTC
libinput-1.10.4-2.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report.

Comment 11 Arne W. 2018-06-22 15:43:11 UTC
I am also receiving the above message regularly since a few days. But I am seeing an effect:
"Tap to Click" doesn't work anymore. After a few minutes it starts working again for a while, then failing again. Do I need to wait for "libevdev 1.6.0"? Which logs should I provide to investigate the issue?

Comment 12 Arne W. 2018-06-23 17:29:48 UTC
I missed the move to Gitlab. My "Tap to Click" issue is already tracked here:
https://gitlab.freedesktop.org/libinput/libinput/issues/46

Comment 13 Arne W. 2018-06-23 17:30:17 UTC
I missed the move to Gitlab. My "Tap to Click" issue is already tracked here:
https://gitlab.freedesktop.org/libinput/libinput/issues/46

Comment 14 Arne W. 2018-06-23 17:30:27 UTC
I missed the move to Gitlab. My "Tap to Click" issue is already tracked here:
https://gitlab.freedesktop.org/libinput/libinput/issues/46