Xorg recognizes Logitech Headset USB dongle as input device then segfaults in XIChangeDeviceProperty

Bug #973297 reported by Jean-Baptiste Lallement
56
This bug affects 9 people
Affects Status Importance Assigned to Milestone
xserver-xorg-input-evdev (Ubuntu)
Fix Released
High
Chase Douglas
Precise
Fix Released
High
Chase Douglas

Bug Description

SRU Justification
=================
[Impact]
On i386 machines, plugging a Logitech headset with buttons in will crash an existing X session or prevent an X session from starting.

The crash is due to a stack buffer overrun write that corrupts the stack. This occurs because the buffer is not allocated with enough room to hold records for all input device valuators when multitouch valuators are present.

[Test Case]
Plug in the headset and see if X crashes. Alternatively, use utouch-evemu to create a virtual headset using the attached Logitech_Wireless_Headset.prop file:

$ sudo utouch-evemu device Logitech_Wireless_Headset.prop

[Regression Potential]
The fix touches code that affects how input device axes are labelled. These labels are used primarily for the GIMP and a few other drawing tools when using a tablet drawing device. It is possible that a regression could occur, causing the axes to not be labeled correctly.

Original bug report
===================
On Precise, when I plug in the USB dongle that comes with a Logitech H800 headset, xorg segfaults.

The following trace is captured in Xorg.log (see attachment XorgOldLog.txt)

    45.488] (II) config/udev: Adding input device Logitech Logitech Wireless Headset (/dev/input/event7)
[ 45.488] (**) Logitech Logitech Wireless Headset: Applying InputClass "evdev keyboard catchall"
[ 45.488] (II) Using input driver 'evdev' for 'Logitech Logitech Wireless Headset'
[ 45.488] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
[ 45.488] (**) Logitech Logitech Wireless Headset: always reports core events
[ 45.488] (**) evdev: Logitech Logitech Wireless Headset: Device: "/dev/input/event7"
[ 45.488] (--) evdev: Logitech Logitech Wireless Headset: Vendor 0x46d Product 0xa29
[ 45.488] (--) evdev: Logitech Logitech Wireless Headset: Found absolute axes
[ 45.488] (--) evdev: Logitech Logitech Wireless Headset: Found absolute multitouch axes
[ 45.488] (--) evdev: Logitech Logitech Wireless Headset: Found keys
[ 45.488] (II) evdev: Logitech Logitech Wireless Headset: Configuring as mouse
[ 45.488] (II) evdev: Logitech Logitech Wireless Headset: Configuring as keyboard
[ 45.488] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.3/input/input7/event7"
[ 45.488] (II) XINPUT: Adding extended input device "Logitech Logitech Wireless Headset" (type: KEYBOARD, id 9)
[ 45.488] (**) Option "xkb_rules" "evdev"
[ 45.488] (**) Option "xkb_model" "pc105"
[ 45.488] (**) Option "xkb_layout" "fr"
[ 45.488] (**) Option "xkb_variant" "oss"
[ 45.489] (II) evdev: Logitech Logitech Wireless Headset: initialized for absolute axes.
[ 45.489]
Backtrace:
[ 45.489] 0: /usr/bin/X (xorg_backtrace+0x37) [0x983037]
[ 45.489] 1: /usr/bin/X (0x7fb000+0x18bdba) [0x986dba]
[ 45.489] 2: /lib/i386-linux-gnu/libpthread.so.0 (0x11b000+0xef30) [0x129f30]
[ 45.489] 3: /lib/i386-linux-gnu/libc.so.6 (0x4fe000+0x1324ba) [0x6304ba]
[ 45.489] 4: /usr/bin/X (XIChangeDeviceProperty+0x16c) [0x91b50c]
[ 45.489] 5: /usr/lib/xorg/modules/input/evdev_drv.so (0x2b2000+0x634e) [0x2b834e]
[ 45.489] 6: /usr/lib/xorg/modules/input/evdev_drv.so (0x2b2000+0x6595) [0x2b8595]
[ 45.489] 7: /usr/bin/X (ActivateDevice+0x66) [0x8272d6]
[ 45.489] 8: /usr/bin/X (0x7fb000+0x8cad5) [0x887ad5]
[ 45.489] 9: /usr/bin/X (0x7fb000+0x9b012) [0x896012]
[ 45.489] 10: /usr/bin/X (0x7fb000+0x9b883) [0x896883]
[ 45.489] 11: /usr/bin/X (config_init+0x14) [0x8958e4]
[ 45.489] 12: /usr/bin/X (InitInput+0xba) [0x875daa]
[ 45.490] 13: /usr/bin/X (0x7fb000+0x2523e) [0x82023e]
[ 45.490] 14: /lib/i386-linux-gnu/libc.so.6 (__libc_start_main+0xf3) [0x5174d3]
[ 45.490] 15: /usr/bin/X (0x7fb000+0x255d9) [0x8205d9]
[ 45.490] Segmentation fault at address 0x120
[ 45.490]
Caught signal 11 (Segmentation fault). Server aborting

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: xorg 1:7.6+12ubuntu1
ProcVersionSignature: Ubuntu 3.2.0-21.34-generic 3.2.13
Uname: Linux 3.2.0-21-generic i686
.tmp.unity.support.test.0:

ApportVersion: 2.0-0ubuntu4
Architecture: i386
CompizPlugins: [core,composite,opengl,compiztoolbox,decor,vpswitch,snap,mousepoll,resize,place,move,wall,grid,regex,imgpng,session,gnomecompat,animation,fade,unitymtgrabhandles,workarounds,scale,expo,ezoom,unityshell]
CompositorRunning: compiz
Date: Wed Apr 4 13:09:19 2012
DistUpgraded: 2009-11-14 19:02:58,254 DEBUG enabling apt cron job
DistroCodename: precise
DistroVariant: ubuntu
EcryptfsInUse: Yes
ExtraDebuggingInterest: Yes, whatever it takes to get this fixed in Ubuntu
MachineType: ASUSTeK Computer Inc. U3SG
ProcEnviron:
 TERM=xterm
 PATH=(custom, user)
 LANG=en_US.utf8
 SHELL=/bin/bash
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.2.0-21-generic root=UUID=75f23f17-3ace-4485-af57-a7318eb6c2ff ro quiet splash vt.handoff=7
SourcePackage: xorg
UpgradeStatus: Upgraded to precise on 2009-11-14 (871 days ago)
dmi.bios.date: 01/28/2008
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 305
dmi.board.asset.tag: ATN12345678901234567
dmi.board.name: U3SG
dmi.board.vendor: ASUSTeK Computer Inc.
dmi.board.version: 1.0
dmi.chassis.asset.tag: ATN12345678901234567
dmi.chassis.type: 10
dmi.chassis.vendor: ASUSTeK Computer Inc.
dmi.chassis.version: 1.0
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvr305:bd01/28/2008:svnASUSTeKComputerInc.:pnU3SG:pvr1.0:rvnASUSTeKComputerInc.:rnU3SG:rvr1.0:cvnASUSTeKComputerInc.:ct10:cvr1.0:
dmi.product.name: U3SG
dmi.product.version: 1.0
dmi.sys.vendor: ASUSTeK Computer Inc.
version.compiz: compiz 1:0.9.7.4-0ubuntu1
version.libdrm2: libdrm2 2.4.32-1ubuntu1
version.libgl1-mesa-dri: libgl1-mesa-dri 8.0.2-0ubuntu3
version.libgl1-mesa-dri-experimental: libgl1-mesa-dri-experimental N/A
version.libgl1-mesa-glx: libgl1-mesa-glx 8.0.2-0ubuntu3
version.xserver-xorg-core: xserver-xorg-core 2:1.11.4-0ubuntu9
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:2.7.0-0ubuntu1
version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:6.14.99~git20111219.aacbd629-0ubuntu2
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.17.0-1ubuntu4
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau 1:0.0.16+git20111201+b5534a1-1build2

Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :
description: updated
summary: - Xorg recognize Logitech Headset USB dongle as input device then
+ Xorg recognizes Logitech Headset USB dongle as input device then
segfaults
Revision history for this message
Andy Whitcroft (apw) wrote : Re: Xorg recognizes Logitech Headset USB dongle as input device then segfaults

Rumour has it there is also an Oops associated with the crash.

Brad Figg (brad-figg)
Changed in linux (Ubuntu):
status: New → Confirmed
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :

This is the message I get in kern.log when this occurs
Apr 4 14:48:57 localhost kernel: [ 6670.964166] usb 5-2: new full-speed USB device number 2 using uhci_hcd
Apr 4 14:48:57 localhost kernel: [ 6671.295182] 2:1:1 : no or invalid class specific endpoint descriptor
Apr 4 14:48:57 localhost kernel: [ 6671.297171] 2:2:1 : no or invalid class specific endpoint descriptor
Apr 4 14:48:57 localhost kernel: [ 6671.402226] input: Logitech Logitech Wireless Headset as /devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.3/input/input10
Apr 4 14:48:57 localhost kernel: [ 6671.402364] generic-usb 0003:046D:0A29.0001: input,hiddev0,hidraw0: USB HID v1.11 Device [Logitech Logitech Wireless Headset] on usb-0000:00:1d.0-2/input3
Apr 4 14:48:57 localhost kernel: [ 6671.402379] usbcore: registered new interface driver usbhid
Apr 4 14:48:57 localhost kernel: [ 6671.402380] usbhid: USB HID core driver
Apr 4 14:48:58 localhost kernel: [ 6672.018636] init: lightdm main process (1202) terminated with status 1
Apr 4 14:49:13 localhost kernel: [ 6687.170505] init: failsafe-x main process (5649) terminated with status 1

Nothing in /var/crash

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in xorg (Ubuntu):
status: New → Confirmed
Bryce Harrington (bryce)
affects: xorg (Ubuntu) → xorg-server (Ubuntu)
Revision history for this message
Brad Figg (brad-figg) wrote : Test with newer development kernel (3.2.0-22.35)

Thank you for taking the time to file a bug report on this issue.

However, given the number of bugs that the Kernel Team receives during any development cycle it is impossible for us to review them all. Therefore, we occasionally resort to using automated bots to request further testing. This is such a request.

We have noted that there is a newer version of the development kernel than the one you last tested when this issue was found. Please test again with the newer kernel and indicate in the bug if this issue still exists or not.

You can update to the latest development kernel by simply running the following commands in a terminal window:

    sudo apt-get update
    sudo apt-get dist-upgrade

If the bug still exists, change the bug status from Incomplete to Confirmed. If the bug no longer exists, change the bug status from Incomplete to Fix Released.

If you want this bot to quit automatically requesting kernel tests, add a tag named: bot-stop-nagging.

 Thank you for your help, we really do appreciate it.

Changed in linux (Ubuntu):
status: Confirmed → Incomplete
tags: added: kernel-request-3.2.0-22.35
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote : Re: Xorg recognizes Logitech Headset USB dongle as input device then segfaults

same problem with latest kernel

tags: added: bot-stop-nagging
Changed in linux (Ubuntu):
status: Incomplete → Confirmed
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :

I disabled the keyboad of the laptop to check a possible conflict between both devices but it makes no difference.

Changed in linux (Ubuntu):
importance: Undecided → Medium
Bryce Harrington (bryce)
summary: Xorg recognizes Logitech Headset USB dongle as input device then
- segfaults
+ segfaults in XIChangeDeviceProperty
Changed in xorg-server (Ubuntu):
status: Confirmed → Triaged
Bryce Harrington (bryce)
Changed in xorg-server (Ubuntu Precise):
importance: Undecided → High
assignee: nobody → Canonical X.org (canonical-x)
milestone: none → ubuntu-12.04
Revision history for this message
Chase Douglas (chasedouglas) wrote :
Revision history for this message
Bryce Harrington (bryce) wrote :

cnd says there's a proposed patch upstream for this bug. If it didn't make it into the point release, we'll want to consider adding it as a distro patch.

Changed in xorg-server (Ubuntu Precise):
assignee: Canonical X.org (canonical-x) → nobody
Revision history for this message
Chase Douglas (chasedouglas) wrote :

Just to be sure, please capture an evemu device property file. Plug in the device. Then run:

$ sudo evtest

Determine which /dev/input/event* node pertains to your headset. Then run:

$ sudo evemu-describe [/dev/input/event* node] > device.prop

Attach device.prop here. Then anyone else can load the device virtually to reproduce.

Changed in xorg-server (Ubuntu):
assignee: nobody → Chase Douglas (chasedouglas)
no longer affects: linux (Ubuntu)
no longer affects: linux (Ubuntu Precise)
Revision history for this message
Bryce Harrington (bryce) wrote :

I've set up a ppa with the aforementioned patch at ppa:bryce/lp973297

Revision history for this message
Bryce Harrington (bryce) wrote :

When that PPA finishes building please install and verify whether or not it solves this bug.

Changed in xorg-server (Ubuntu Precise):
status: Triaged → Incomplete
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :

Xorg from the PPA crashes too.

Changed in xorg-server (Ubuntu Precise):
status: Incomplete → Confirmed
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :

output of evemu-describe

Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :

xorg log file with the version from the PPA.

Revision history for this message
Chase Douglas (chasedouglas) wrote :

I can't reproduce the issue with the evemu device prop file. Let's try traditional debugging approaches. Please install xserver-xorg-input-evdev-dbgsym from the ddebs archive. Then start X, attach to it with gdb, plug in your headset, and when it crashes issue "bt full" and attach the output here.

Thanks!

Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :

I installed the symbol file you mentioned, xserver-org-dbg and xserver-xorg--core-dbgsym too but that's all I get:

Program received signal SIGSEGV, Segmentation fault.
0x0026e50a in ?? ()
(gdb) bt full
#0 0x0026e50a in ?? ()
No symbol table info available.
#1 0x00000221 in ?? ()
No symbol table info available.

Any idea of any missing dbg file ?

Also apport popped up and redirected me to bug 943880

Revision history for this message
Chase Douglas (chasedouglas) wrote :

Hi Jean-Baptiste,

You need to follow the instructions here to be able to install xserver-xorg-input-evdev-dbgsym: https://wiki.ubuntu.com/DebuggingProgramCrash. Alternatively, you could install it manually by downloading http://ddebs.ubuntu.com/pool/main/x/xserver-xorg-input-evdev/xserver-xorg-input-evdev-dbgsym_2.7.0-0ubuntu1_i386.ddeb. Please try again after installing the debug package.

Thanks!

Revision history for this message
Dr. Clue (drclue) wrote :

Pretty much a (me too) post here.

As part of Logitech's warranty service they sent out this really nice
new Model H800 headset to replace an older model in ill health.

Tried it on both of my Ubuntu 12.04 machines and indeed it crashes.

There is one other machine here that is still at Ubuntu 11.10 and for that
older version the headphones work great.

Hopefully the fix will just show up in the updates. Just glad to
see it's being worked on ;)

Changed in xorg-server (Ubuntu):
status: Confirmed → Incomplete
Changed in xorg-server (Ubuntu Precise):
status: Confirmed → Incomplete
Revision history for this message
Dmitriy Lyalyuev (dmi5riy) wrote :

This bug in 32-bit arch only.

On my Ubuntu 12.04 i686 affected too.
On my Ubuntu 12.04 x64 (on notebook) everything allright.

Revision history for this message
Chase Douglas (chasedouglas) wrote :

Hi Dmitriy,

Thanks for figuring that out! I can reproduce the crash here on my netbook. There is an ABI mismatch between xserver-xorg-input-evdev and xserver-xorg-core in the XIChangeDeviceProperty() function. The "value" parameter gets mangled between evdev and the server.

It looks like this commit is related:

http://cgit.freedesktop.org/xorg/xserver/commit/?id=ed8f3c4bd17bddf1369d050ea8e63b9451d887ce

This was backported into the Precise xorg-server package in this commit:

http://anonscm.debian.org/gitweb/?p=pkg-xorg/xserver/xorg-server.git;a=commitdiff;h=fe5444bfe3c7cc56cd8bddb32d2dc45b22431aea;hp=447156777040e0695391ecac709de3a857368a8d

This was committed on January 10th and released in xorg-server 2:1.11.3-0ubuntu2 that same day. However, evdev was built on March 15th. The xserver-xorg-dev package used for the evdev build has an identical function signature to the current xorg-server package. However, when I do a rebuild of evdev against the current xorg-server, the result does not crash.

The obvious fix is to upload a rebuild package to fix the ABI issue, but I have no idea what went wrong.

Changed in xorg-server (Ubuntu):
status: Incomplete → Invalid
Changed in xorg-server (Ubuntu Precise):
status: Incomplete → Triaged
Revision history for this message
Didier Richard (dgr) wrote :
Download full text (5.2 KiB)

I am also affected (Kubuntu 12.04 32-bit), but diffently I guess.

* xserver-xorg installed packages :

ii xserver-xorg 1:7.6+12ubuntu1 X.Org X server
ii xserver-xorg-core 2:1.11.4-0ubuntu10.1 Xorg X server - core server
ii xserver-xorg-input-evdev 1:2.7.0-0ubuntu1 X.Org X server -- evdev input driver

when I plug the headset, the x session quits and I am back to the graphical login interface (kdm).
if I leave the headser plugged, then the x server freeze completly.

I run evtest and obtain what follows :

Available devices:
/dev/input/event0: Lid Switch
/dev/input/event1: Power Button
/dev/input/event10: HDA Intel Headphone
/dev/input/event11: SynPS/2 Synaptics TouchPad
/dev/input/event2: Sleep Button
/dev/input/event3: Power Button
/dev/input/event4: AT Translated Set 2 keyboard
/dev/input/event5: Video Bus
/dev/input/event6: Logitech Unifying Device. Wireless PID:4017
/dev/input/event7: HDA Intel Rear Mic
/dev/input/event8: HDA Intel Front Mic
/dev/input/event9: HDA Intel Front Headphone
Select the device event number [0-11]: ^C

the Xorg log indicates the use of event12 :

[ 3319.281] (II) config/udev: Adding input device Logitech Unifying Device. Wireless PID:4017 (/dev/input/event6)
[ 3319.281] (**) Logitech Unifying Device. Wireless PID:4017: Applying InputClass "evdev pointer catchall"
[ 3319.281] (II) Using input driver 'evdev' for 'Logitech Unifying Device. Wireless PID:4017'
[ 3319.281] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
[ 3319.281] (**) Logitech Unifying Device. Wireless PID:4017: always reports core events
[ 3319.281] (**) evdev: Logitech Unifying Device. Wireless PID:4017: Device: "/dev/input/event6"
[ 3319.281] (--) evdev: Logitech Unifying Device. Wireless PID:4017: Vendor 0x46d Product 0xc52b
[ 3319.281] (--) evdev: Logitech Unifying Device. Wireless PID:4017: Found 20 mouse buttons
[ 3319.281] (--) evdev: Logitech Unifying Device. Wireless PID:4017: Found scroll wheel(s)
[ 3319.281] (--) evdev: Logitech Unifying Device. Wireless PID:4017: Found relative axes
[ 3319.281] (--) evdev: Logitech Unifying Device. Wireless PID:4017: Found x and y relative axes
[ 3319.281] (II) evdev: Logitech Unifying Device. Wireless PID:4017: Configuring as mouse
[ 3319.281] (II) evdev: Logitech Unifying Device. Wireless PID:4017: Adding scrollwheel support
[ 3319.281] (**) evdev: Logitech Unifying Device. Wireless PID:4017: YAxisMapping: buttons 4 and 5
[ 3319.281] (**) evdev: Logitech Unifying Device. Wireless PID:4017: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[ 3319.281] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.2/0003:046D:C52B.0003/input/input6/event6"
[ 3319.281] (II) XINPUT: Adding extended input device "Logitech Unifying Device. Wireless PID:4017" (type: MOUSE, id 10)
[ 3319.281] (II) evdev: Logitech Unifying Device. Wireless PID:4017: initialized for relative axes.
[ 3319.282] (**) Logitech Unifying Device. Wireless PID:4017: (accel) keeping acceleration scheme 1
[ 3319.282] (**) Logite...

Read more...

Revision history for this message
Chase Douglas (chasedouglas) wrote :

Hi Didier,

I think it's the same bug.

description: updated
affects: xorg-server (Ubuntu) → xserver-xorg-input-evdev (Ubuntu)
Changed in xserver-xorg-input-evdev (Ubuntu):
milestone: ubuntu-12.04 → none
status: Invalid → Triaged
description: updated
Revision history for this message
Chris Halse Rogers (raof) wrote : Please test proposed package

Hello Jean-Baptiste, or anyone else affected,

Accepted xserver-xorg-input-evdev into precise-proposed. The package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Changed in xserver-xorg-input-evdev (Ubuntu Precise):
status: Triaged → Fix Committed
tags: added: verification-needed
Revision history for this message
François Coulier (f-coulier) wrote :

Hello all;

I have enabled -proposed, an updated xserver-xorg-input-evdev (version is now 1:2.7.0-0ubuntu1.1).
Xorg still crashes upon pluging the USB dongle, though.

François

Revision history for this message
Didier Richard (dgr) wrote :

Same for me :-(

Didier

Revision history for this message
Dmitriy Lyalyuev (dmi5riy) wrote :

Same and for me...

Revision history for this message
Niko Berger (niko-berger-corinis) wrote :

enabled proposed and updated input-evdev . Can confirm the crash is still in there.

I also looked at the backported changes, and it does not look like the codechanges are connected with this.

evdev identifies the headset dongle as "evdev keyboard catchall" and configues it accordingly:

[ 64.714] (II) config/udev: Adding input device Logitech Logitech Wireless Headset (/dev/input/event2)
[ 64.714] (**) Logitech Logitech Wireless Headset: Applying InputClass "evdev keyboard catchall"
[ 64.714] (II) Using input driver 'evdev' for 'Logitech Logitech Wireless Headset'
[ 64.714] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
[ 64.714] (**) Logitech Logitech Wireless Headset: always reports core events
[ 64.714] (**) evdev: Logitech Logitech Wireless Headset: Device: "/dev/input/event2"
[ 64.714] (--) evdev: Logitech Logitech Wireless Headset: Vendor 0x46d Product 0xa29
[ 64.714] (--) evdev: Logitech Logitech Wireless Headset: Found absolute axes
[ 64.714] (--) evdev: Logitech Logitech Wireless Headset: Found absolute multitouch axes
[ 64.714] (--) evdev: Logitech Logitech Wireless Headset: Found keys
[ 64.714] (II) evdev: Logitech Logitech Wireless Headset: Configuring as mouse
[ 64.714] (II) evdev: Logitech Logitech Wireless Headset: Configuring as keyboard
[ 64.714] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.3/input/input20/event2"
[ 64.714] (II) XINPUT: Adding extended input device "Logitech Logitech Wireless Headset" (type: KEYBOARD, id 8)
[ 64.714] (**) Option "xkb_rules" "evdev"
[ 64.714] (**) Option "xkb_model" "pc105"
[ 64.714] (**) Option "xkb_layout" "de"
[ 64.715] (II) evdev: Logitech Logitech Wireless Headset: initialized for absolute axes.
[ 64.715]
Backtrace:
[ 64.715] 0: /usr/bin/X (xorg_backtrace+0x37) [0xb76ac637]
[ 64.715] 1: /usr/bin/X (0xb7524000+0x18c3ba) [0xb76b03ba]
[ 64.715] 2: (vdso) (__kernel_rt_sigreturn+0x0) [0xb750140c]
[ 64.715] 3: /lib/i386-linux-gnu/libc.so.6 (0xb7166000+0x135d32) [0xb729bd32]
[ 64.715] 4: /usr/bin/X (XIChangeDeviceProperty+0x16c) [0xb7644b0c]
[ 64.715] 5: /usr/lib/xorg/modules/input/evdev_drv.so (0xb4140000+0x634e) [0xb414634e]
[ 64.715] 6: /usr/lib/xorg/modules/input/evdev_drv.so (0xb4140000+0x6595) [0xb4146595]
[ 64.715] 7: /usr/bin/X (ActivateDevice+0x66) [0xb75502e6]
[ 64.715] 8: /usr/bin/X (0xb7524000+0x8cc15) [0xb75b0c15]
[ 64.715] 9: /usr/bin/X (0xb7524000+0x9b152) [0xb75bf152]
[ 64.715] 10: /usr/bin/X (0xb7524000+0x9b9c3) [0xb75bf9c3]
[ 64.715] 11: /usr/bin/X (config_init+0x14) [0xb75bea24]
[ 64.715] 12: /usr/bin/X (InitInput+0xfd) [0xb759eeed]
[ 64.715] 13: /usr/bin/X (0xb7524000+0x2524e) [0xb754924e]
[ 64.715] 14: /lib/i386-linux-gnu/libc.so.6 (__libc_start_main+0xf3) [0xb717f4d3]
[ 64.715] 15: /usr/bin/X (0xb7524000+0x255e9) [0xb75495e9]
[ 64.715] Segmentation fault at address 0xfa
[ 64.715]
Caught signal 11 (Segmentation fault). Server aborting

Revision history for this message
Tyler Devereaux (tyler-devereaux) wrote :

Please forgive me if this is a stupid post, but I am an affected user and I'm just slightly confused.

What is the status of this bug? The description says that there is a stable solution, which seems to be rebuilding the evdev module; however, if I'm understanding the comments thus far correctly, it seems like that may not actually work?

I don't know much about building modules, but I'm willing to read up on how to and try if this solution has a chance, but it seems this solution may have been proven not to work.

I guess my question really is: is there a working solution to this or are people still working on one? If there is a working solution, can someone please point me in the right direction?

Thank you to everyone involved for trying to work on this. I appreciate everyone's efforts.

Revision history for this message
Tyler Devereaux (tyler-devereaux) wrote :

Also, I'm not sure if this helps anyone, but I'm having the exact same issue as reported here, except I'm using a Turtle Beach wireless audio solution (via a USB dongle, much similar to the Logitech product referenced here).

If I'm reading the posts properly, perhaps it's already been identified that the issue isn't Logitech-specific, but I'm just trying to help.

Revision history for this message
Niko Berger (niko-berger-corinis) wrote :

I compiled the driver manually and started debugging a little. The crash is somewhere in

static void EvdevInitAxesLabels(EvdevPtr pEvdev, int mode, int natoms, Atom *atoms)

(mode=1 natoms=8)

I even merged the current changes from git... but that didn't do anything either. (as soon as you plug in the dongle->x crashes)

 I think the main problem is actually that evdev shouldn't handle the device at all - since it is not a keyboard or a mouse... but I don't know the kernel code enough to really continue there.

Is there any way to tell evdev to ignore the device id of the dongle?

Revision history for this message
Niko Berger (niko-berger-corinis) wrote :
Download full text (3.9 KiB)

I just tested itout and it works fine on x86_64 (second machine) - the keyboard class does not seem to be a problem - the keys on the headset are actually volume control, so binding as a keyboard is fine.

[ 5.509] Build Operating System: Linux 2.6.24-31-server x86_64 Ubuntu
[ 5.509] Current Operating System: Linux galadriel 3.2.0-24-generic #39-Ubuntu SMP Mon May 21 16:52:17 UTC 2012 x86_64
[ 5.509] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.2.0-24-generic root=UUID=ea2db944-3ee6-4bc3-941c-558b42091383 ro quiet splash vt.handoff=7
[ 5.509] Build Date: 07 May 2012 11:43:21PM
[ 5.509] xorg-server 2:1.11.4-0ubuntu10.2 (For technical support please see http://www.ubuntu.com/support)

[ 22.194317] logitech-djreceiver 0003:046D:C52B.0004: hiddev0,hidraw1: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:00:1d.0-1.2/input2
[ 22.198270] input: Logitech Unifying Device. Wireless PID:1024 as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.2/0003:046D:C52B.0004/input/input12
[ 22.198570] logitech-djdevice 0003:046D:C52B.0005: input,hidraw2: USB HID v1.11 Mouse [Logitech Unifying Device. Wireless PID:1024] on usb-0000:00:1d.0-1.2:1
[ 22.200277] input: Logitech Unifying Device. Wireless PID:2011 as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.2/0003:046D:C52B.0004/input/input13
[ 22.200459] logitech-djdevice 0003:046D:C52B.0006: input,hidraw3: USB HID v1.11 Keyboard [Logitech Unifying Device. Wireless PID:2011] on usb-0000:00:1d.0-1.2:2
[ 141.749684] usb 2-1.1: new full-speed USB device number 16 using ehci_hcd
[ 142.005200] input: Logitech Logitech Wireless Headset as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.3/input/input14
[ 142.006281] generic-usb 0003:046D:0A29.0007: input,hiddev0,hidraw4: USB HID v1.11 Device [Logitech Logitech Wireless Headset] on usb-0000:00:1d.0-1.1/input3
[ 142.035300] 16:1:1 : no or invalid class specific endpoint descriptor
[ 142.036885] 16:2:1 : no or invalid class specific endpoint descriptor
[ 142.039570] usbcore: registered new interface driver snd-usb-audio

[ 141.981] (II) config/udev: Adding input device Logitech Logitech Wireless Headset (/dev/input/event14)
[ 141.981] (**) Logitech Logitech Wireless Headset: Applying InputClass "evdev keyboard catchall"
[ 141.981] (II) Using input driver 'evdev' for 'Logitech Logitech Wireless Headset'
[ 141.981] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
[ 141.981] (**) Logitech Logitech Wireless Headset: always reports core events
[ 141.981] (**) evdev: Logitech Logitech Wireless Headset: Device: "/dev/input/event14"
[ 141.981] (--) evdev: Logitech Logitech Wireless Headset: Vendor 0x46d Product 0xa29
[ 141.981] (--) evdev: Logitech Logitech Wireless Headset: Found absolute axes
[ 141.981] (--) evdev: Logitech Logitech Wireless Headset: Found absolute multitouch axes
[ 141.981] (--) evdev: Logitech Logitech Wireless Headset: Found keys
[ 141.981] (II) evdev: Logitech Logitech Wireless Headset: Configuring as mouse
[ 141.981] (II) evdev: Logitech Logitech Wireless Headset: Configuring as keyboard
[ 141.981] (**) Option "config_info" "udev:/sys/devices/pci0000...

Read more...

Revision history for this message
Julian Jentjens (mijette) wrote :

Hi,

regarding Chris' solution (#24). Although I might be late I just tried it and it does not work on my machine.

Changed in xserver-xorg-input-evdev (Ubuntu Precise):
status: Fix Committed → Incomplete
status: Incomplete → Fix Committed
tags: added: verification-failed
removed: verification-needed
Changed in xserver-xorg-input-evdev (Ubuntu Precise):
status: Fix Committed → Triaged
Revision history for this message
Chase Douglas (chasedouglas) wrote :

It turns out that when one compiles evdev without optimizations, the device initializes properly and nothing bad happens. When one compiles with the normal optimizations used in the Ubuntu archive builds, the device causes the X server to crash. I'm still investigating...

Revision history for this message
Chase Douglas (chasedouglas) wrote :

I believe I have found the issue, and the patch sent upstream is: http://lists.x.org/archives/xorg-devel/2012-June/031541.html.

I have applied the patch to the package and uploaded a test package to ppa:chasedouglas/jupiter. Please test it out after it has finished building. The version of the package is 2.7.0-0ubuntu1.2~jupiter1. If it resolves the issue, I will create a new SRU package for it.

Thanks!

Changed in xserver-xorg-input-evdev (Ubuntu):
status: Triaged → In Progress
Changed in xserver-xorg-input-evdev (Ubuntu Precise):
status: Triaged → In Progress
Revision history for this message
Julian Jentjens (mijette) wrote :

Great. Just tested the package and was able to make a Skype call. Thanks to everybody who worked on the bug.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xserver-xorg-input-evdev - 1:2.7.0-0ubuntu2

---------------
xserver-xorg-input-evdev (1:2.7.0-0ubuntu2) quantal; urgency=low

  * Fix crash due to axis label overrun (LP: #973297)
    - Add 0006-axis-label-overrun.patch
 -- Chase Douglas <email address hidden> Thu, 07 Jun 2012 09:24:10 -0700

Changed in xserver-xorg-input-evdev (Ubuntu):
status: In Progress → Fix Released
description: updated
description: updated
Changed in xserver-xorg-input-evdev (Ubuntu Precise):
status: In Progress → Fix Committed
Revision history for this message
Brian Murray (brian-murray) wrote :

There is a new version of this package in precise-proposed which could use testing. Thanks!

tags: added: verification-needed
removed: verification-failed
Revision history for this message
Niko Berger (niko-berger-corinis) wrote :

I can confirm that the patch in http://lists.x.org/archives/xorg-devel/2012-June/031541.html works fine. Once applied xorg starts and the logitech headset works

Revision history for this message
Tyler Devereaux (tyler-devereaux) wrote :

It seems the latest patch (1:2.7.0-0ubuntu2) was only uploaded for testing to Quantal, but this bug report was updated stating a fix was committed to Precise.

Is is possible to upload this patch for Precise too please? Or, if I'm doing this wrong, please advise me. Are we supposed to install it from the Quantal patch collection? Is this safe?

Thanks for all the hard work

Revision history for this message
François Coulier (f-coulier) wrote : Re: [Bug 973297] Re: Xorg recognizes Logitech Headset USB dongle as input device then segfaults in XIChangeDeviceProperty
Download full text (7.3 KiB)

It is not clear to me how to apply this patch, though. ...

François

----- Mail original -----

> De: "Niko Berger" <email address hidden>
> À: "f coulier" <email address hidden>
> Envoyé: Vendredi 8 Juin 2012 08:50:27
> Objet: [Bug 973297] Re: Xorg recognizes Logitech Headset USB dongle
> as input device then segfaults in XIChangeDeviceProperty

> I can confirm that the patch in http://lists.x.org/archives/xorg-
> devel/2012-June/031541.html works fine. Once applied xorg starts and
> the
> logitech headset works

> --
> You received this bug notification because you are subscribed to the
> bug
> report.
> https://bugs.launchpad.net/bugs/973297

> Title:
> Xorg recognizes Logitech Headset USB dongle as input device then
> segfaults in XIChangeDeviceProperty

> Status in “xserver-xorg-input-evdev” package in Ubuntu:
> Fix Released
> Status in “xserver-xorg-input-evdev” source package in Precise:
> Fix Committed

> Bug description:
> SRU Justification
> =================
> [Impact]
> On i386 machines, plugging a Logitech headset with buttons in will
> crash an existing X session or prevent an X session from starting.

> The crash is due to a stack buffer overrun write that corrupts the
> stack. This occurs because the buffer is not allocated with enough
> room to hold records for all input device valuators when multitouch
> valuators are present.

> [Test Case]
> Plug in the headset and see if X crashes. Alternatively, use
> utouch-evemu to create a virtual headset using the attached
> Logitech_Wireless_Headset.prop file:

> $ sudo utouch-evemu device Logitech_Wireless_Headset.prop

> [Regression Potential]
> The fix touches code that affects how input device axes are labelled.
> These labels are used primarily for the GIMP and a few other drawing
> tools when using a tablet drawing device. It is possible that a
> regression could occur, causing the axes to not be labeled
> correctly.

> Original bug report
> ===================
> On Precise, when I plug in the USB dongle that comes with a Logitech
> H800 headset, xorg segfaults.

> The following trace is captured in Xorg.log (see attachment
> XorgOldLog.txt)

> 45.488] (II) config/udev: Adding input device Logitech Logitech
> Wireless Headset (/dev/input/event7)
> [ 45.488] (**) Logitech Logitech Wireless Headset: Applying
> InputClass "evdev keyboard catchall"
> [ 45.488] (II) Using input driver 'evdev' for 'Logitech Logitech
> Wireless Headset'
> [ 45.488] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
> [ 45.488] (**) Logitech Logitech Wireless Headset: always reports
> core events
> [ 45.488] (**) evdev: Logitech Logitech Wireless Headset: Device:
> "/dev/input/event7"
> [ 45.488] (--) evdev: Logitech Logitech Wireless Headset: Vendor
> 0x46d Product 0xa29
> [ 45.488] (--) evdev: Logitech Logitech Wireless Headset: Found
> absolute axes
> [ 45.488] (--) evdev: Logitech Logitech Wireless Headset: Found
> absolute multitouch axes
> [ 45.488] (--) evdev: Logitech Logitech Wireless Headset: Found keys
> [ 45.488] (II) evdev: Logitech Logitech Wireless Headset: Configuring
> as mouse
> [ 45.488] (II) evdev: Logitech Logitech Wireless Headset: Configuring
> as keyboard
> [ 45.488] (*...

Read more...

Revision history for this message
Clint Byrum (clint-fewbar) wrote : Please test proposed package

Hello Jean-Baptiste, or anyone else affected,

Accepted xserver-xorg-input-evdev into precise-proposed. The package will build now and be available in a few hours. Please test and give feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you in advance!

Revision history for this message
François Coulier (f-coulier) wrote : Re: [Bug 973297] Please test proposed package

Clint Byrum a écrit , le 14/06/2012 00:43:
> Hello Jean-Baptiste, or anyone else affected,
>
> Accepted xserver-xorg-input-evdev into precise-proposed. The package
> will build now and be available in a few hours. Please test and give
> feedback here. See https://wiki.ubuntu.com/Testing/EnableProposed for
> documentation how to enable and use -proposed. Thank you in advance!
>
I confirm that this package fixes the problem.

Many thanks to all those who worked to fix this bug.

François

--
François Coulier
1, lot. le Murmure des Pins,
La Pounche,
13190 Allauch
Tel: 04 91 05 23 30 / 06 28 33 69 71

http://www.chasaadd.org

tags: added: verification-done
removed: verification-needed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package xserver-xorg-input-evdev - 1:2.7.0-0ubuntu1.2

---------------
xserver-xorg-input-evdev (1:2.7.0-0ubuntu1.2) precise-proposed; urgency=low

  * Fix crash due to axis label overrun (LP: #973297)
    - Add 0006-axis-label-overrun.patch
 -- Chase Douglas <email address hidden> Thu, 07 Jun 2012 09:27:57 -0700

Changed in xserver-xorg-input-evdev (Ubuntu Precise):
status: Fix Committed → Fix Released
Revision history for this message
Daniel Castro (castromd) wrote :

I confirm I was having this same issue, but with different headset. It was happening with a USB Plantronics Blackwire C610.

I'm on Linux Mint 13 Cinnamon. After updating package xserver-xorg-input-evdev the problem was fixed.

To post a comment you must log in.