Bug 89473

Summary: Logitech Wireless Headset: BUG: triggered 'if (axnum >= dev->valuator->numAxes)'
Product: xorg Reporter: szotsaki
Component: Input/evdevAssignee: Peter Hutterer <peter.hutterer>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium CC: consume.noise, peter.hutterer
Version: 7.6 (2010.12)   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
evemu-describe of the device (/dev/input/event4) none

Description szotsaki 2015-03-06 16:28:00 UTC
I have a Logitech Wireless Headset H600 device (http://www.logitech.com/product/wireless-headset-h600 ) and when my machine starts, I get the following in X.org log file:

(II) config/udev: Adding input device Logitech Logitech Wireless Headset (/dev/input/event4)
(**) Logitech Logitech Wireless Headset: Applying InputClass "evdev keyboard catchall"
(**) Logitech Logitech Wireless Headset: Applying InputClass "system-keyboard"
(**) Logitech Logitech Wireless Headset: Applying InputClass "evdev keyboard catchall"
(II) Using input driver 'evdev' for 'Logitech Logitech Wireless Headset'
(**) Logitech Logitech Wireless Headset: always reports core events
(**) evdev: Logitech Logitech Wireless Headset: Device: "/dev/input/event4"
(--) evdev: Logitech Logitech Wireless Headset: Vendor 0x46d Product 0xa29
(--) evdev: Logitech Logitech Wireless Headset: Found absolute axes
(--) evdev: Logitech Logitech Wireless Headset: Found absolute multitouch axes
(II) evdev: Logitech Logitech Wireless Headset: No buttons found, faking one.
(--) evdev: Logitech Logitech Wireless Headset: Found keys
(II) evdev: Logitech Logitech Wireless Headset: Forcing relative x/y axes to exist.
(II) evdev: Logitech Logitech Wireless Headset: Configuring as mouse
(II) evdev: Logitech Logitech Wireless Headset: Configuring as keyboard
(**) evdev: Logitech Logitech Wireless Headset: YAxisMapping: buttons 4 and 5
(**) evdev: Logitech Logitech Wireless Headset: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
(**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1a.7/usb1/1-5/1-5.3/1-5.3:1.3/0003:046D:0A29.0047/input/input88/event4"
(II) XINPUT: Adding extended input device "Logitech Logitech Wireless Headset" (type: KEYBOARD, id 10)
(**) Option "xkb_rules" "evdev"
(**) Option "xkb_model" "pc105"
(**) Option "xkb_layout" "hu"
(**) Option "xkb_options" "terminate:ctrl_alt_bksp"
(EE) BUG: triggered 'if (axnum >= dev->valuator->numAxes)'
(EE) BUG: exevents.c:2086 in InitValuatorAxisStruct()
(EE)
(EE) Backtrace:
(EE) 0: /usr/bin/X (xorg_backtrace+0x48) [0x58c858]
(EE) 1: /usr/bin/X (InitValuatorAxisStruct+0x68) [0x51f1c8]
(EE) 2: /usr/lib64/xorg/modules/input/evdev_drv.so (0x7f22b34a9000+0x51e0) [0x7f22b34ae1e0]
(EE) 3: /usr/lib64/xorg/modules/input/evdev_drv.so (0x7f22b34a9000+0x5696) [0x7f22b34ae696]
(EE) 4: /usr/lib64/xorg/modules/input/evdev_drv.so (0x7f22b34a9000+0x7300) [0x7f22b34b0300]
(EE) 5: /usr/bin/X (ActivateDevice+0x37) [0x4317a7]
(EE) 6: /usr/bin/X (0x400000+0x87a16) [0x487a16]
(EE) 7: /usr/bin/X (0x400000+0x9d94b) [0x49d94b]
(EE) 8: /usr/bin/X (0x400000+0x9deb3) [0x49deb3]
(EE) 9: /usr/bin/X (config_init+0x9) [0x49cb99]
(EE) 10: /usr/bin/X (InitInput+0xab) [0x47b70b]
(EE) 11: /usr/bin/X (0x400000+0x3f999) [0x43f999]
(EE) 12: /lib64/libc.so.6 (__libc_start_main+0xf5) [0x7f22b9ba6b05]
(EE) 13: /usr/bin/X (0x400000+0x2afde) [0x42afde]
(EE)
(II) evdev: Logitech Logitech Wireless Headset: initialized for absolute axes.
(**) Logitech Logitech Wireless Headset: (accel) keeping acceleration scheme 1
(**) Logitech Logitech Wireless Headset: (accel) acceleration profile 0
(**) Logitech Logitech Wireless Headset: (accel) acceleration factor: 2.000
(**) Logitech Logitech Wireless Headset: (accel) acceleration threshold: 4

It has two three buttons (volume up, down and a microphone switch - maybe this last one is device-only, not reported to the OS).

Fortunately, it works fine, but it looks ugly in the X.org log to have a stack trace every time I start my computer.

Versions:
OS: openSUSE 13.2 3.18.5-1.gf378da4-desktop
X.Org: xorg-x11 7.6_1-15.1.2
       xorg-x11-driver-input 7.6_1-12.1.2
Comment 1 Peter Hutterer 2015-03-06 22:02:52 UTC
Pls run evemu-describe against the device and attach the output here, thanks.
Comment 2 szotsaki 2015-03-06 22:09:50 UTC
Created attachment 114099 [details]
evemu-describe of the device (/dev/input/event4)
Comment 3 Peter Hutterer 2015-03-06 22:30:56 UTC
what's your evdev version?
Comment 4 szotsaki 2015-03-06 22:32:41 UTC
zypper se -si evdev:

S | Name               | Version     | Arch   | Repository         
--+--------------------+-------------+--------+--------------------
i | libevdev2          | 1.2-2.2.2   | x86_64 | openSUSE-13.2      
i | xf86-input-evdev   | 2.9.0-3.1.4 | x86_64 | openSUSE-13.2
Comment 5 Peter Hutterer 2015-03-10 05:29:17 UTC
alright, this device is a fake MT device and evdev doesn't handle this correctly.
 
http://www.freedesktop.org/software/libevdev/doc/latest/group__mt.html has a bit of an explanation.
Comment 7 Peter Hutterer 2015-03-12 01:09:35 UTC
commit 38e107a39fb4a0b630ee5adb5870c91dbc27abde
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Mar 11 14:58:04 2015 +1000

    Disable axis faking and MT event processing on fake MT devices
Comment 8 Daniel Martin 2015-05-05 09:33:08 UTC
*** Bug 86924 has been marked as a duplicate of this bug. ***
Comment 9 Simon Waters 2016-01-24 17:00:37 UTC
I am seeing what looks like the same issue, except it is accompanied by poor quality sounds that seems to degrade with other keyboard, mouse, or window events.

This is with Debian Jessie, I have tried Debian Sid package xserver-xorg-input-evdev package.

I tried building from the git repository on January 15th (and overwrote /usr/lib/xorg/modules/input/evdev_drv.so)

Neither of these changed the behaviour, the error is reported and the degrading sound behaviour continues (not seen with Wheezy or Windows 10).

Are these changes confirmed to fix this issue? e.g. should I open a new bug.
Comment 10 Peter Hutterer 2016-01-24 21:59:06 UTC
if you still get the error, please file a new bug and attach the evemu-describe output there. This bug was fixed, but a different device may trigger a similar issue in a different way.

The sound quality going down isn't related, at least not directly. The error messages is for a known case and we handle it, the only thing the driver does is print the backtrace and continue (so it's not a crash either). Maybe there's something like abrt running that spots the backtrace and then takes CPU time away? Either way, new bug please, thanks.
Comment 11 szotsaki 2016-01-25 20:08:54 UTC
Could you please tell me whether it got fixed in version 2.9.2? I got the following versions updated from the originally reported ones:

S | Name             | Type    | Version   | Arch   | Repository         
--+------------------+---------+-----------+----------------------------
i | libevdev2        | package | 1.4.4-1.1 | x86_64 | openSUSE-Leap_42.1
i | xf86-input-evdev | package | 2.9.2-5.2 | x86_64 | openSUSE-Leap_42.1

And the following backtrace still happens, but now with additional lines about axis faking:

[...]
[   325.358] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1a.7/usb7/7-5/7-5.3/7-5.3:1.3/0003:046D:0A29.0006/input/input7/event4"
[   325.358] (II) XINPUT: Adding extended input device "Logitech Logitech Wireless Headset" (type: KEYBOARD, id 10)
[   325.358] (**) Option "xkb_rules" "evdev"
[   325.358] (**) Option "xkb_model" "pc105"
[   325.358] (**) Option "xkb_layout" "hu"
[   325.358] (**) Option "xkb_options" "terminate:ctrl_alt_bksp"
[   325.358] (II) evdev: Logitech Logitech Wireless Headset: Faking axis ABS_X.
[   325.358] (II) evdev: Logitech Logitech Wireless Headset: Faking axis ABS_Y.
[   325.358] (II) evdev: Logitech Logitech Wireless Headset: Faking axis ABS_PRESSURE.
[   325.358] (II) evdev: Logitech Logitech Wireless Headset: Faking axis ABS_DISTANCE.
[   325.358] (EE) BUG: triggered 'if (axnum >= dev->valuator->numAxes)'
[   325.358] (EE) BUG: exevents.c:2087 in InitValuatorAxisStruct()
[   325.358] (EE)
[   325.358] (EE) Backtrace:
[   325.358] (EE) 0: /usr/bin/X (xorg_backtrace+0x48) [0x58b0c8]
[   325.358] (EE) 1: /usr/bin/X (InitValuatorAxisStruct+0x68) [0x51f748]
[   325.358] (EE) 2: /usr/lib64/xorg/modules/input/evdev_drv.so (0x7f044a6ca000+0x5479) [0x7f044a6cf479]
[   325.358] (EE) 3: /usr/lib64/xorg/modules/input/evdev_drv.so (0x7f044a6ca000+0x590f) [0x7f044a6cf90f]
[   325.358] (EE) 4: /usr/lib64/xorg/modules/input/evdev_drv.so (0x7f044a6ca000+0x763b) [0x7f044a6d163b]
[   325.358] (EE) 5: /usr/bin/X (ActivateDevice+0x37) [0x432d97]
[   325.358] (EE) 6: /usr/bin/X (0x400000+0x88fa6) [0x488fa6]
[   325.358] (EE) 7: /usr/bin/X (0x400000+0x9e9db) [0x49e9db]
[   325.359] (EE) 8: /usr/bin/X (0x400000+0x9efa3) [0x49efa3]
[   325.359] (EE) 9: /usr/bin/X (config_init+0x9) [0x49d9f9]
[   325.359] (EE) 10: /usr/bin/X (InitInput+0xab) [0x47cc0b]
[   325.359] (EE) 11: /usr/bin/X (0x400000+0x40f79) [0x440f79]
[   325.359] (EE) 12: /lib64/libc.so.6 (__libc_start_main+0xf5) [0x7f04508e3b05]
[   325.359] (EE) 13: /usr/bin/X (0x400000+0x2c5de) [0x42c5de]
[   325.359] (EE)
Comment 12 Peter Hutterer 2016-01-27 01:27:35 UTC
no, the fixes are on the master branch only (and in evdev 2.10.0), not on the 2.9 branch.

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.