Bug 104030 - Incorrect case with Yubikey static password with libinput 1.9.3-1 on Arch Linux
Summary: Incorrect case with Yubikey static password with libinput 1.9.3-1 on Arch Linux
Status: RESOLVED FIXED
Alias: None
Product: Wayland
Classification: Unclassified
Component: libinput (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Wayland bug list
QA Contact:
URL:
Whiteboard:
Keywords:
: 104041 104065 104070 104148 104254 (view as bug list)
Depends on:
Blocks:
 
Reported: 2017-12-02 07:36 UTC by Michael Van Delft
Modified: 2017-12-17 23:36 UTC (History)
9 users (show)

See Also:
i915 platform:
i915 features:


Attachments
HACK to handle modifiers before other keys (1.54 KB, patch)
2017-12-04 17:34 UTC, sf
Details | Splinter Review

Description Michael Van Delft 2017-12-02 07:36:30 UTC
I have a Yubikey setup with a static password. After upgrading to libinput 1.9.3-1 on Arch Linux when I press the button on the yubikey the password is typed but some of the characters are lower case when they should be uppercase. 

Rolling back to libinput 1.9.2-1 (for now) has fixes the issue. 

I'm not 100% sure how the internals of a Yubikey work but my understanding is that it emulates a USB keyboard and sends through the scan codes as though they were key presses. 

After upgrading libinput four of the characters in my password which should have been uppercase come through as lowercase (it's consistently the same four). There are other uppercase characters in my password that come through with out issues.

I don't know the exact speed the Yubikey is typing at but I'd guess around 100 characters a second. It feels as though the scancodes are coming through too fast and it's missing the shift down press.
Comment 1 crossbowffs 2017-12-03 03:29:18 UTC
I have a similar issue. Since upgrading to 1.9.3 the bindings on my mouse (Logitech G403) no longer work correctly. I have my button set to send CTRL-D, but it seems like the D is received before the CTRL. Downgrading to 1.9.2 also fixes the problem.
Comment 2 matish 2017-12-03 15:06:10 UTC
(In reply to crossbowffs from comment #1)
> I have a similar issue. Since upgrading to 1.9.3 the bindings on my mouse
> (Logitech G403) no longer work correctly. I have my button set to send
> CTRL-D, but it seems like the D is received before the CTRL. Downgrading to
> 1.9.2 also fixes the problem.

I have the same problem with my Logitech G502 that I configured with some macros. Ctrl, Shift, Alt, etc seem to get lost inside libinput as "ctrl+w" becomes "w" and "ctrl+shift+t" becomes "t".

Bisecting the changes between 1.9.2 and 1.9.3 indicates that 8c55bc060df837f986f57c8c26ae2f9c58963bcc is the culprit. I'm not familiar enough with C and libinput to help with a patch, sorry.
Comment 3 Gilles Hamel 2017-12-03 20:08:26 UTC
Me too :(
I use the hid_aureal driver and my remote control is affected by this bug.
Actually, some keys of my remote send mux events. For example, when pressing the "My video" key, linux receives the events KeyPress Control_L  +  Keypress e. Since v1.9.3, the key events are received out of order : with xev, I see first the KeyPress event e, then the Keypress Control_L. 2 possible workarounds : downgrade to 1.9.2 or switch to xorg xf86-input-evdev driver.
Comment 4 Peter Hutterer 2017-12-04 00:04:17 UTC
Similar to bug 104041, they probably all have the same underlying cause. I'll need an evemu-record for each device to verify this though. Note that this will record the keys, so password leakage can happen. To avoid this, please change the text file as below. 

Any MSC_SCAN line can be deleted

E: 0.015985 0004 0004 458787	# EV_MSC / MSC_SCAN             458787

Any KEY_foo line that is a password-key needs to be modified:
E: 0.015985 0004 0004 458787	# EV_KEY / KEY_A             1

Change the whole line to "somekey 1" and "somekey 0", depending on the value. I only need to know press vs release, not which key. Do this only for the alphanumeric keys, not the modifiers like Ctrl, shift, alt because those I need to be able to identify. So the file should read something like this:

somekey 1
E: 0.015985 0001 0000 0000	# ------------ SYN_REPORT (0) ---------- +0ms
E: 0.015985 0004 0004 458787	# EV_KEY / KEY_CTRL             1
somekey 0
E: 0.015985 0001 0000 0000	# ------------ SYN_REPORT (0) ---------- +0ms

If you're not worried about the contents, then just attach the file as it comes out of evemu-record.
Comment 5 Peter Hutterer 2017-12-04 00:05:41 UTC
*** Bug 104041 has been marked as a duplicate of this bug. ***
Comment 6 crossbowffs 2017-12-04 03:10:18 UTC
(In reply to Peter Hutterer from comment #4)
> Similar to bug 104041, they probably all have the same underlying cause.
> I'll need an evemu-record for each device to verify this though. Note that
> this will record the keys, so password leakage can happen. To avoid this,
> please change the text file as below. 
> 
> Any MSC_SCAN line can be deleted
> 
> E: 0.015985 0004 0004 458787	# EV_MSC / MSC_SCAN             458787
> 
> Any KEY_foo line that is a password-key needs to be modified:
> E: 0.015985 0004 0004 458787	# EV_KEY / KEY_A             1
> 
> Change the whole line to "somekey 1" and "somekey 0", depending on the
> value. I only need to know press vs release, not which key. Do this only for
> the alphanumeric keys, not the modifiers like Ctrl, shift, alt because those
> I need to be able to identify. So the file should read something like this:
> 
> somekey 1
> E: 0.015985 0001 0000 0000	# ------------ SYN_REPORT (0) ---------- +0ms
> E: 0.015985 0004 0004 458787	# EV_KEY / KEY_CTRL             1
> somekey 0
> E: 0.015985 0001 0000 0000	# ------------ SYN_REPORT (0) ---------- +0ms
> 
> If you're not worried about the contents, then just attach the file as it
> comes out of evemu-record.

Minor typo in my last post, it was Win+D instead of Ctrl+D. Anyways, here's my output from evemu-record:

E: 0.000001 0004 0004 458979	# EV_MSC / MSC_SCAN             458979
E: 0.000001 0001 007d 0001	# EV_KEY / KEY_LEFTMETA         1
E: 0.000001 0004 0004 458759	# EV_MSC / MSC_SCAN             458759
E: 0.000001 0001 0020 0001	# EV_KEY / KEY_D                1
E: 0.000001 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +0ms
E: 0.125993 0004 0004 458979	# EV_MSC / MSC_SCAN             458979
E: 0.125993 0001 007d 0000	# EV_KEY / KEY_LEFTMETA         0
E: 0.125993 0004 0004 458759	# EV_MSC / MSC_SCAN             458759
E: 0.125993 0001 0020 0000	# EV_KEY / KEY_D                0
E: 0.125993 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +125ms

Same output for both libinput 1.9.2 and 1.9.3.
Comment 7 Peter Hutterer 2017-12-04 04:46:36 UTC
oh. this one is caused by an ordering issue. we run through the device state in sequential order and KEY_D sorts before KEY_LEFTMETA, so we send that key event first. I think I need to put an exception into the state handling for pure key events. yay...
Comment 8 Francisco Pina Martins 2017-12-04 11:26:04 UTC
*** Bug 104065 has been marked as a duplicate of this bug. ***
Comment 9 sf 2017-12-04 15:05:49 UTC
*** Bug 104070 has been marked as a duplicate of this bug. ***
Comment 10 admin.freedesktop 2017-12-04 16:15:17 UTC
This change also breaks a keyboard mapping program I wrote, which modifies shift behavior.

So on some layouts, when one key is pressed, it sends SHIFT_DOWN then the key, then SHIFT_UP one right after the other (with no sync in between), and that's worked for years until this libinput change.  It also works on SDL apps, console, virtualbox VMs running windows etc.

The good news is anyone can run that app and reproduce this issue without any hardware:
https://code.moparisthebest.com/moparisthebest/rusty-keys

The specific code responsible for the multiple event sending is here:
https://code.moparisthebest.com/moparisthebest/rusty-keys/src/master/src/keymapper.rs#L323
Comment 11 sf 2017-12-04 17:34:38 UTC
Created attachment 135932 [details] [review]
HACK to handle modifiers before other keys

This fixes the issues with modifiers not being handled prior to regular keys if they appear at the same time.
It's most definately not the correct way to fix this, but I lack deeper knowledge of evdev/libinput to determine the right way to do it - but maybe it points to the correct direction?
Comment 12 sf 2017-12-04 17:41:56 UTC
Also (since I closed the duplicate 104070 where I mentioned it at the end):
Is this line also introduced by db3b6fe5 "fallback: change to handle the state at EV_SYN time" correct or should dispatch->hw_key_mask be reset instead?

@@ -1164,6 +1211,7 @@ fallback_return_to_neutral_state(struct fallback_dispatch *dispatch,

    memset(dispatch->hw_key_mask, 0, sizeof(dispatch->hw_key_mask));
+   memset(dispatch->hw_key_mask, 0, sizeof(dispatch->last_hw_key_mask));
Comment 13 sf 2017-12-04 17:43:52 UTC
(In reply to sf from comment #12)
> Also (since I closed the duplicate 104070 where I mentioned it at the end):
> Is this line also introduced by db3b6fe5 "fallback: change to handle the
> state at EV_SYN time" correct or should dispatch->hw_key_mask be reset
> instead?
> 
> @@ -1164,6 +1211,7 @@ fallback_return_to_neutral_state(struct
> fallback_dispatch *dispatch,
> 
>     memset(dispatch->hw_key_mask, 0, sizeof(dispatch->hw_key_mask));
> +   memset(dispatch->hw_key_mask, 0, sizeof(dispatch->last_hw_key_mask));

... Now I did the same :-) Should read:
or should dispatch->last_hw_key_mask be reset instead?
Comment 14 Peter Hutterer 2017-12-07 08:52:03 UTC
*** Bug 104148 has been marked as a duplicate of this bug. ***
Comment 15 Michael Van Delft 2017-12-07 23:15:16 UTC
I've generated a new password on my Yubikey just for this so I don't need to worry about password leakage.  Full recording below.

# EVEMU 1.3
# Kernel: 4.14.3-1-ARCH
# DMI: dmi:bvnLENOVO:bvr8DET72WW(1.42):bd02/18/2016:svnLENOVO:pn4286CTO:pvrThinkPadX220:rvnLENOVO:rn4286CTO:rvrNotAvailable:cvnLENOVO:ct10:cvrNotAvailable:
# Input device name: "Yubico Yubikey 4 OTP+U2F"
# Input device ID: bus 0x03 vendor 0x1050 product 0x403 version 0x110
# Supported events:
#   Event type 0 (EV_SYN)
#     Event code 0 (SYN_REPORT)
#     Event code 1 (SYN_CONFIG)
#     Event code 2 (SYN_MT_REPORT)
#     Event code 3 (SYN_DROPPED)
#     Event code 4 ((null))
#     Event code 5 ((null))
#     Event code 6 ((null))
#     Event code 7 ((null))
#     Event code 8 ((null))
#     Event code 9 ((null))
#     Event code 10 ((null))
#     Event code 11 ((null))
#     Event code 12 ((null))
#     Event code 13 ((null))
#     Event code 14 ((null))
#     Event code 15 (SYN_MAX)
#   Event type 1 (EV_KEY)
#     Event code 1 (KEY_ESC)
#     Event code 2 (KEY_1)
#     Event code 3 (KEY_2)
#     Event code 4 (KEY_3)
#     Event code 5 (KEY_4)
#     Event code 6 (KEY_5)
#     Event code 7 (KEY_6)
#     Event code 8 (KEY_7)
#     Event code 9 (KEY_8)
#     Event code 10 (KEY_9)
#     Event code 11 (KEY_0)
#     Event code 12 (KEY_MINUS)
#     Event code 13 (KEY_EQUAL)
#     Event code 14 (KEY_BACKSPACE)
#     Event code 15 (KEY_TAB)
#     Event code 16 (KEY_Q)
#     Event code 17 (KEY_W)
#     Event code 18 (KEY_E)
#     Event code 19 (KEY_R)
#     Event code 20 (KEY_T)
#     Event code 21 (KEY_Y)
#     Event code 22 (KEY_U)
#     Event code 23 (KEY_I)
#     Event code 24 (KEY_O)
#     Event code 25 (KEY_P)
#     Event code 26 (KEY_LEFTBRACE)
#     Event code 27 (KEY_RIGHTBRACE)
#     Event code 28 (KEY_ENTER)
#     Event code 29 (KEY_LEFTCTRL)
#     Event code 30 (KEY_A)
#     Event code 31 (KEY_S)
#     Event code 32 (KEY_D)
#     Event code 33 (KEY_F)
#     Event code 34 (KEY_G)
#     Event code 35 (KEY_H)
#     Event code 36 (KEY_J)
#     Event code 37 (KEY_K)
#     Event code 38 (KEY_L)
#     Event code 39 (KEY_SEMICOLON)
#     Event code 40 (KEY_APOSTROPHE)
#     Event code 41 (KEY_GRAVE)
#     Event code 42 (KEY_LEFTSHIFT)
#     Event code 43 (KEY_BACKSLASH)
#     Event code 44 (KEY_Z)
#     Event code 45 (KEY_X)
#     Event code 46 (KEY_C)
#     Event code 47 (KEY_V)
#     Event code 48 (KEY_B)
#     Event code 49 (KEY_N)
#     Event code 50 (KEY_M)
#     Event code 51 (KEY_COMMA)
#     Event code 52 (KEY_DOT)
#     Event code 53 (KEY_SLASH)
#     Event code 54 (KEY_RIGHTSHIFT)
#     Event code 55 (KEY_KPASTERISK)
#     Event code 56 (KEY_LEFTALT)
#     Event code 57 (KEY_SPACE)
#     Event code 58 (KEY_CAPSLOCK)
#     Event code 59 (KEY_F1)
#     Event code 60 (KEY_F2)
#     Event code 61 (KEY_F3)
#     Event code 62 (KEY_F4)
#     Event code 63 (KEY_F5)
#     Event code 64 (KEY_F6)
#     Event code 65 (KEY_F7)
#     Event code 66 (KEY_F8)
#     Event code 67 (KEY_F9)
#     Event code 68 (KEY_F10)
#     Event code 69 (KEY_NUMLOCK)
#     Event code 70 (KEY_SCROLLLOCK)
#     Event code 71 (KEY_KP7)
#     Event code 72 (KEY_KP8)
#     Event code 73 (KEY_KP9)
#     Event code 74 (KEY_KPMINUS)
#     Event code 75 (KEY_KP4)
#     Event code 76 (KEY_KP5)
#     Event code 77 (KEY_KP6)
#     Event code 78 (KEY_KPPLUS)
#     Event code 79 (KEY_KP1)
#     Event code 80 (KEY_KP2)
#     Event code 81 (KEY_KP3)
#     Event code 82 (KEY_KP0)
#     Event code 83 (KEY_KPDOT)
#     Event code 86 (KEY_102ND)
#     Event code 87 (KEY_F11)
#     Event code 88 (KEY_F12)
#     Event code 96 (KEY_KPENTER)
#     Event code 97 (KEY_RIGHTCTRL)
#     Event code 98 (KEY_KPSLASH)
#     Event code 99 (KEY_SYSRQ)
#     Event code 100 (KEY_RIGHTALT)
#     Event code 102 (KEY_HOME)
#     Event code 103 (KEY_UP)
#     Event code 104 (KEY_PAGEUP)
#     Event code 105 (KEY_LEFT)
#     Event code 106 (KEY_RIGHT)
#     Event code 107 (KEY_END)
#     Event code 108 (KEY_DOWN)
#     Event code 109 (KEY_PAGEDOWN)
#     Event code 110 (KEY_INSERT)
#     Event code 111 (KEY_DELETE)
#     Event code 119 (KEY_PAUSE)
#     Event code 125 (KEY_LEFTMETA)
#     Event code 126 (KEY_RIGHTMETA)
#     Event code 127 (KEY_COMPOSE)
#   Event type 4 (EV_MSC)
#     Event code 4 (MSC_SCAN)
#   Event type 17 (EV_LED)
#     Event code 0 (LED_NUML)
#        State 0
#     Event code 1 (LED_CAPSL)
#        State 0
#     Event code 2 (LED_SCROLLL)
#        State 0
#     Event code 3 (LED_COMPOSE)
#        State 0
#     Event code 4 (LED_KANA)
#        State 0
#   Event type 20 (EV_REP)
#     Event code 0 (REP_DELAY)
#     Event code 1 (REP_MAX)
# Properties:
N: Yubico Yubikey 4 OTP+U2F
I: 0003 1050 0403 0110
P: 00 00 00 00 00 00 00 00
B: 00 0b 00 00 00 00 00 00 00
B: 01 fe ff ff ff ff ff ff ff
B: 01 ff ff cf 01 df ff 80 e0
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 02 00 00 00 00 00 00 00 00
B: 03 00 00 00 00 00 00 00 00
B: 04 10 00 00 00 00 00 00 00
B: 05 00 00 00 00 00 00 00 00
B: 11 1f 00 00 00 00 00 00 00
B: 12 00 00 00 00 00 00 00 00
B: 14 03 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
################################
#      Waiting for events      #
################################
E: 0.000001 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.000001 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.000001 0004 0004 458763	# EV_MSC / MSC_SCAN             458763
E: 0.000001 0001 0023 0001	# EV_KEY / KEY_H                1
E: 0.000001 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +0ms
E: 0.007841 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.007841 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.007841 0004 0004 458763	# EV_MSC / MSC_SCAN             458763
E: 0.007841 0001 0023 0000	# EV_KEY / KEY_H                0
E: 0.007841 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +7ms
E: 0.015883 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.015883 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.015883 0004 0004 458763	# EV_MSC / MSC_SCAN             458763
E: 0.015883 0001 0023 0001	# EV_KEY / KEY_H                1
E: 0.015883 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.023937 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.023937 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.023937 0004 0004 458763	# EV_MSC / MSC_SCAN             458763
E: 0.023937 0001 0023 0000	# EV_KEY / KEY_H                0
E: 0.023937 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.031797 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.031797 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.031797 0004 0004 458767	# EV_MSC / MSC_SCAN             458767
E: 0.031797 0001 0026 0001	# EV_KEY / KEY_L                1
E: 0.031797 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.039846 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.039846 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.039846 0004 0004 458767	# EV_MSC / MSC_SCAN             458767
E: 0.039846 0001 0026 0000	# EV_KEY / KEY_L                0
E: 0.039846 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.047898 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.047898 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.047898 0004 0004 458763	# EV_MSC / MSC_SCAN             458763
E: 0.047898 0001 0023 0001	# EV_KEY / KEY_H                1
E: 0.047898 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.055941 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.055941 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.055941 0004 0004 458763	# EV_MSC / MSC_SCAN             458763
E: 0.055941 0001 0023 0000	# EV_KEY / KEY_H                0
E: 0.055941 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.063822 0004 0004 458775	# EV_MSC / MSC_SCAN             458775
E: 0.063822 0001 0014 0001	# EV_KEY / KEY_T                1
E: 0.063822 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.071886 0004 0004 458775	# EV_MSC / MSC_SCAN             458775
E: 0.071886 0001 0014 0000	# EV_KEY / KEY_T                0
E: 0.071886 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.079928 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.079928 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.079928 0004 0004 458767	# EV_MSC / MSC_SCAN             458767
E: 0.079928 0001 0026 0001	# EV_KEY / KEY_L                1
E: 0.079928 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.087969 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.087969 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.087969 0004 0004 458767	# EV_MSC / MSC_SCAN             458767
E: 0.087969 0001 0026 0000	# EV_KEY / KEY_L                0
E: 0.087969 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.095844 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.095844 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.095844 0004 0004 458758	# EV_MSC / MSC_SCAN             458758
E: 0.095844 0001 002e 0001	# EV_KEY / KEY_C                1
E: 0.095844 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.103898 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.103898 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.103898 0004 0004 458758	# EV_MSC / MSC_SCAN             458758
E: 0.103898 0001 002e 0000	# EV_KEY / KEY_C                0
E: 0.103898 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.111927 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.111927 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.111927 0004 0004 458776	# EV_MSC / MSC_SCAN             458776
E: 0.111927 0001 0016 0001	# EV_KEY / KEY_U                1
E: 0.111927 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.119968 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.119968 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.119968 0004 0004 458776	# EV_MSC / MSC_SCAN             458776
E: 0.119968 0001 0016 0000	# EV_KEY / KEY_U                0
E: 0.119968 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.127833 0004 0004 458757	# EV_MSC / MSC_SCAN             458757
E: 0.127833 0001 0030 0001	# EV_KEY / KEY_B                1
E: 0.127833 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.135871 0004 0004 458757	# EV_MSC / MSC_SCAN             458757
E: 0.135871 0001 0030 0000	# EV_KEY / KEY_B                0
E: 0.135871 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.143959 0004 0004 458758	# EV_MSC / MSC_SCAN             458758
E: 0.143959 0001 002e 0001	# EV_KEY / KEY_C                1
E: 0.143959 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.151988 0004 0004 458758	# EV_MSC / MSC_SCAN             458758
E: 0.151988 0001 002e 0000	# EV_KEY / KEY_C                0
E: 0.151988 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.159862 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.159862 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.159862 0004 0004 458758	# EV_MSC / MSC_SCAN             458758
E: 0.159862 0001 002e 0001	# EV_KEY / KEY_C                1
E: 0.159862 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.167893 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.167893 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.167893 0004 0004 458758	# EV_MSC / MSC_SCAN             458758
E: 0.167893 0001 002e 0000	# EV_KEY / KEY_C                0
E: 0.167893 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.175947 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.175947 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.175947 0004 0004 458757	# EV_MSC / MSC_SCAN             458757
E: 0.175947 0001 0030 0001	# EV_KEY / KEY_B                1
E: 0.175947 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.184012 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.184012 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.184012 0004 0004 458757	# EV_MSC / MSC_SCAN             458757
E: 0.184012 0001 0030 0000	# EV_KEY / KEY_B                0
E: 0.184012 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +9ms
E: 0.191861 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.191861 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.191861 0004 0004 458757	# EV_MSC / MSC_SCAN             458757
E: 0.191861 0001 0030 0001	# EV_KEY / KEY_B                1
E: 0.191861 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +7ms
E: 0.199917 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.199917 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.199917 0004 0004 458757	# EV_MSC / MSC_SCAN             458757
E: 0.199917 0001 0030 0000	# EV_KEY / KEY_B                0
E: 0.199917 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.207968 0004 0004 458766	# EV_MSC / MSC_SCAN             458766
E: 0.207968 0001 0025 0001	# EV_KEY / KEY_K                1
E: 0.207968 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.215809 0004 0004 458766	# EV_MSC / MSC_SCAN             458766
E: 0.215809 0001 0025 0000	# EV_KEY / KEY_K                0
E: 0.215809 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.223908 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.223908 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.223908 0004 0004 458766	# EV_MSC / MSC_SCAN             458766
E: 0.223908 0001 0025 0001	# EV_KEY / KEY_K                1
E: 0.223908 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.231926 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.231926 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.231926 0004 0004 458766	# EV_MSC / MSC_SCAN             458766
E: 0.231926 0001 0025 0000	# EV_KEY / KEY_K                0
E: 0.231926 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.239980 0004 0004 458763	# EV_MSC / MSC_SCAN             458763
E: 0.239980 0001 0023 0001	# EV_KEY / KEY_H                1
E: 0.239980 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.247838 0004 0004 458763	# EV_MSC / MSC_SCAN             458763
E: 0.247838 0001 0023 0000	# EV_KEY / KEY_H                0
E: 0.247838 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.255893 0004 0004 458763	# EV_MSC / MSC_SCAN             458763
E: 0.255893 0001 0023 0001	# EV_KEY / KEY_H                1
E: 0.255893 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.263953 0004 0004 458763	# EV_MSC / MSC_SCAN             458763
E: 0.263953 0001 0023 0000	# EV_KEY / KEY_H                0
E: 0.263953 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.272010 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.272010 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.272010 0004 0004 458760	# EV_MSC / MSC_SCAN             458760
E: 0.272010 0001 0012 0001	# EV_KEY / KEY_E                1
E: 0.272010 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +9ms
E: 0.279860 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.279860 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.279860 0004 0004 458760	# EV_MSC / MSC_SCAN             458760
E: 0.279860 0001 0012 0000	# EV_KEY / KEY_E                0
E: 0.279860 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +7ms
E: 0.287907 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.287907 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.287907 0004 0004 458765	# EV_MSC / MSC_SCAN             458765
E: 0.287907 0001 0024 0001	# EV_KEY / KEY_J                1
E: 0.287907 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.295967 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.295967 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.295967 0004 0004 458765	# EV_MSC / MSC_SCAN             458765
E: 0.295967 0001 0024 0000	# EV_KEY / KEY_J                0
E: 0.295967 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.303822 0004 0004 458777	# EV_MSC / MSC_SCAN             458777
E: 0.303822 0001 002f 0001	# EV_KEY / KEY_V                1
E: 0.303822 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.311873 0004 0004 458777	# EV_MSC / MSC_SCAN             458777
E: 0.311873 0001 002f 0000	# EV_KEY / KEY_V                0
E: 0.311873 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.319928 0004 0004 458764	# EV_MSC / MSC_SCAN             458764
E: 0.319928 0001 0017 0001	# EV_KEY / KEY_I                1
E: 0.319928 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.327980 0004 0004 458764	# EV_MSC / MSC_SCAN             458764
E: 0.327980 0001 0017 0000	# EV_KEY / KEY_I                0
E: 0.327980 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.335841 0004 0004 458762	# EV_MSC / MSC_SCAN             458762
E: 0.335841 0001 0022 0001	# EV_KEY / KEY_G                1
E: 0.335841 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.343880 0004 0004 458762	# EV_MSC / MSC_SCAN             458762
E: 0.343880 0001 0022 0000	# EV_KEY / KEY_G                0
E: 0.343880 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.351947 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.351947 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.351947 0004 0004 458775	# EV_MSC / MSC_SCAN             458775
E: 0.351947 0001 0014 0001	# EV_KEY / KEY_T                1
E: 0.351947 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.360014 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.360014 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.360014 0004 0004 458775	# EV_MSC / MSC_SCAN             458775
E: 0.360014 0001 0014 0000	# EV_KEY / KEY_T                0
E: 0.360014 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +9ms
E: 0.367844 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.367844 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.367844 0004 0004 458769	# EV_MSC / MSC_SCAN             458769
E: 0.367844 0001 0031 0001	# EV_KEY / KEY_N                1
E: 0.367844 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +7ms
E: 0.375895 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.375895 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.375895 0004 0004 458769	# EV_MSC / MSC_SCAN             458769
E: 0.375895 0001 0031 0000	# EV_KEY / KEY_N                0
E: 0.375895 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.383963 0004 0004 458759	# EV_MSC / MSC_SCAN             458759
E: 0.383963 0001 0020 0001	# EV_KEY / KEY_D                1
E: 0.383963 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.392011 0004 0004 458759	# EV_MSC / MSC_SCAN             458759
E: 0.392011 0001 0020 0000	# EV_KEY / KEY_D                0
E: 0.392011 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +9ms
E: 0.399872 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.399872 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.399872 0004 0004 458767	# EV_MSC / MSC_SCAN             458767
E: 0.399872 0001 0026 0001	# EV_KEY / KEY_L                1
E: 0.399872 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +7ms
E: 0.407908 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.407908 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.407908 0004 0004 458767	# EV_MSC / MSC_SCAN             458767
E: 0.407908 0001 0026 0000	# EV_KEY / KEY_L                0
E: 0.407908 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.415962 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.415962 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.415962 0004 0004 458773	# EV_MSC / MSC_SCAN             458773
E: 0.415962 0001 0013 0001	# EV_KEY / KEY_R                1
E: 0.415962 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.423825 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.423825 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.423825 0004 0004 458773	# EV_MSC / MSC_SCAN             458773
E: 0.423825 0001 0013 0000	# EV_KEY / KEY_R                0
E: 0.423825 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.431870 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.431870 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.431870 0004 0004 458773	# EV_MSC / MSC_SCAN             458773
E: 0.431870 0001 0013 0001	# EV_KEY / KEY_R                1
E: 0.431870 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.439915 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.439915 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.439915 0004 0004 458773	# EV_MSC / MSC_SCAN             458773
E: 0.439915 0001 0013 0000	# EV_KEY / KEY_R                0
E: 0.439915 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.447796 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.447796 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.447796 0004 0004 458757	# EV_MSC / MSC_SCAN             458757
E: 0.447796 0001 0030 0001	# EV_KEY / KEY_B                1
E: 0.447796 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.455834 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.455834 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.455834 0004 0004 458757	# EV_MSC / MSC_SCAN             458757
E: 0.455834 0001 0030 0000	# EV_KEY / KEY_B                0
E: 0.455834 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.463894 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.463894 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.463894 0004 0004 458775	# EV_MSC / MSC_SCAN             458775
E: 0.463894 0001 0014 0001	# EV_KEY / KEY_T                1
E: 0.463894 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.471950 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.471950 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.471950 0004 0004 458775	# EV_MSC / MSC_SCAN             458775
E: 0.471950 0001 0014 0000	# EV_KEY / KEY_T                0
E: 0.471950 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.479999 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.479999 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.479999 0004 0004 458763	# EV_MSC / MSC_SCAN             458763
E: 0.479999 0001 0023 0001	# EV_KEY / KEY_H                1
E: 0.479999 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.487849 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.487849 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.487849 0004 0004 458763	# EV_MSC / MSC_SCAN             458763
E: 0.487849 0001 0023 0000	# EV_KEY / KEY_H                0
E: 0.487849 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.495897 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.495897 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.495897 0004 0004 458777	# EV_MSC / MSC_SCAN             458777
E: 0.495897 0001 002f 0001	# EV_KEY / KEY_V                1
E: 0.495897 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.503957 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.503957 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.503957 0004 0004 458777	# EV_MSC / MSC_SCAN             458777
E: 0.503957 0001 002f 0000	# EV_KEY / KEY_V                0
E: 0.503957 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.512006 0004 0004 458759	# EV_MSC / MSC_SCAN             458759
E: 0.512006 0001 0020 0001	# EV_KEY / KEY_D                1
E: 0.512006 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +9ms
E: 0.519848 0004 0004 458759	# EV_MSC / MSC_SCAN             458759
E: 0.519848 0001 0020 0000	# EV_KEY / KEY_D                0
E: 0.519848 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +7ms
E: 0.527909 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.527909 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.527909 0004 0004 458776	# EV_MSC / MSC_SCAN             458776
E: 0.527909 0001 0016 0001	# EV_KEY / KEY_U                1
E: 0.527909 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.535950 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.535950 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.535950 0004 0004 458776	# EV_MSC / MSC_SCAN             458776
E: 0.535950 0001 0016 0000	# EV_KEY / KEY_U                0
E: 0.535950 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.543799 0004 0004 458759	# EV_MSC / MSC_SCAN             458759
E: 0.543799 0001 0020 0001	# EV_KEY / KEY_D                1
E: 0.543799 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.551854 0004 0004 458759	# EV_MSC / MSC_SCAN             458759
E: 0.551854 0001 0020 0000	# EV_KEY / KEY_D                0
E: 0.551854 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.559907 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.559907 0001 002a 0001	# EV_KEY / KEY_LEFTSHIFT        1
E: 0.559907 0004 0004 458765	# EV_MSC / MSC_SCAN             458765
E: 0.559907 0001 0024 0001	# EV_KEY / KEY_J                1
E: 0.559907 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.567978 0004 0004 458977	# EV_MSC / MSC_SCAN             458977
E: 0.567978 0001 002a 0000	# EV_KEY / KEY_LEFTSHIFT        0
E: 0.567978 0004 0004 458765	# EV_MSC / MSC_SCAN             458765
E: 0.567978 0001 0024 0000	# EV_KEY / KEY_J                0
E: 0.567978 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.575995 0004 0004 458767	# EV_MSC / MSC_SCAN             458767
E: 0.575995 0001 0026 0001	# EV_KEY / KEY_L                1
E: 0.575995 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.583885 0004 0004 458767	# EV_MSC / MSC_SCAN             458767
E: 0.583885 0001 0026 0000	# EV_KEY / KEY_L                0
E: 0.583885 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.591929 0004 0004 458776	# EV_MSC / MSC_SCAN             458776
E: 0.591929 0001 0016 0001	# EV_KEY / KEY_U                1
E: 0.591929 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.599969 0004 0004 458776	# EV_MSC / MSC_SCAN             458776
E: 0.599969 0001 0016 0000	# EV_KEY / KEY_U                0
E: 0.599969 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +8ms
E: 0.608009 0004 0004 458792	# EV_MSC / MSC_SCAN             458792
E: 0.608009 0001 001c 0001	# EV_KEY / KEY_ENTER            1
E: 0.608009 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +9ms
E: 0.615863 0004 0004 458792	# EV_MSC / MSC_SCAN             458792
E: 0.615863 0001 001c 0000	# EV_KEY / KEY_ENTER            0
E: 0.615863 0000 0000 0000	# ------------ SYN_REPORT (0) ---------- +7ms
Comment 16 Peter Hutterer 2017-12-08 00:09:55 UTC
Michael, please always *attach* long logs like this, otherwise the informative bits are several pages of scrolling away from each other. Plus, these files are replayable, downloading them as attachment is less effort for maintainers.
Comment 18 Peter Hutterer 2017-12-13 06:16:41 UTC
commit 1c8636923b7d8245a5f55dfbfa191c0129ad4414
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 8 09:41:07 2017 +1000

    fallback: send key events out immediately upon receiving them
Comment 19 Peter Hutterer 2017-12-17 23:01:57 UTC
*** Bug 104254 has been marked as a duplicate of this bug. ***
Comment 20 Peter Hutterer 2017-12-17 23:05:51 UTC
The fix is now available in 1.9.4 as well.

Please do not comment on this bug further unless the fix itself is broken. But even then it's better to file a new bug.


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.