| Summary: | "barcode reader" device reproducibly causes SEGV in evdev driver | ||
|---|---|---|---|
| Product: | xorg | Reporter: | martin <mnemo> |
| Component: | Input/evdev | Assignee: | Peter Hutterer <peter.hutterer> |
| Status: | RESOLVED FIXED | QA Contact: | Xorg Project Team <xorg-team> |
| Severity: | normal | ||
| Priority: | medium | CC: | mathieu, pebender |
| Version: | 7.4 (2008.09) | ||
| Hardware: | Other | ||
| OS: | All | ||
| Whiteboard: | |||
| i915 platform: | i915 features: | ||
| Attachments: | |||
|
Description
martin
2009-05-08 04:37:41 UTC
Created attachment 25633 [details]
xorg.log from the system with the barcode reader
Created attachment 25634 [details]
xorg.log.old from the system with the barcode reader
Created attachment 25635 [details]
lspci -vvnn from the system with the barcode reader
Created attachment 25636 [details]
lsusb -v from the system with the barcode reader
Created attachment 25637 [details]
xorg.conf from the system with the barcode reader
Created attachment 25638 [details]
GDB "bt full" showing the xserver SEGV that the barcode reader causes
When the barcode reader hw is attached /var/log/messages show this: May 2 22:19:01 kumo kernel: [21888.413149] usb 2-1: USB disconnect, address 2 May 2 22:19:16 kumo kernel: [21903.328012] usb 6-2: new low speed USB device using uhci_hcd and address 2 May 2 22:19:16 kumo kernel: [21903.503092] usb 6-2: configuration #1 chosen from 1 choice May 2 22:19:17 kumo kernel: [21903.931545] input: Guest Generic DE64-401 as /devices/pci0000:00/0000:00:1d.0/usb6/6-2/6-2:1.0/input/input7 May 2 22:19:17 kumo kernel: [21903.944051] cypress 0003:04B4:DE64.0004: input,hidraw3: USB HID v1.00 Keyboard [Guest Generic DE64-401] on usb-0000:00:1d.0-2/input0 This particular barcode reader previosuly worked well using Ubuntu 8.04 hardy, which shipped the following versions: xserver-xorg-core 1.4.1~git20080131-1ubuntu9.2 xserver-xorg-input-evdev 1.2.0-1ubuntu2 Ubuntu 9.04 jaunty where the SEGV is confirmed, uses these versions: xserver-xorg-core 1.6.0-0ubuntu14 xserver-xorg-input-evdev 2.1.1-1ubuntu4 So this is a regression. Versions of X server and evdev in various distro releases: https://launchpad.net/ubuntu/+source/xserver-xorg-input-evdev https://launchpad.net/ubuntu/+source/xorg-server please attach the output of evtest against the device file. It'll help creating a software emulation of the device to reproduce the bug. http://people.freedesktop.org/~whot/evtest.c Created attachment 25788 [details]
evtest output
Peter and Martin, please find evtest output attached, according to Martin's very detailed instructions:
sudo ./evtest /dev/input/event7 > output.txt
Created attachment 25860 [details] evtest output of a working barcode reader Not sure if this could be of any help, but this is the evtest output of a working barcode reader (this one : http://item.rakuten.co.jp/fksystem/z-3021/ ) Peter, is there anything else you need for this bug? Will you be able to re-create the SEGV based on the data Mathieu has supplied? It looks like updateSlaveDeviceCoords() is calling miPointerGetScreen() which returns NULL and then updateSlaveDeviceCoords() derefs that pointer trying to get the width of the screen. I'm guessing there should be a proper Screen associated with the barcode reader device? No, I can reproduce the bug with this information. Trickier than expected, I think it triggered 5 different bugs already, some in evdev, some in xserver. FWIW, git master from evdev and xserver now run stable with this device. This could be interesting to cherry-pick back... Terrific! Thanks a lot. In which X version(s) is the fix likely to ship? For potential cherry picking, do you have any SHA1's to recommend? @Mathieu, if you're comfortable building X from source, it would be nice to get the fix confirmed. (In reply to comment #15) > Terrific! Thanks a lot. In which X version(s) is the fix likely to ship? For > potential cherry picking, do you have any SHA1's to recommend? not yet, I need to go through all the patches I pushed over the last weeks. There was at least one or two in evdev and a few in the server. All the fixes will be in 1.7 though. Thanks Peter.
> @Mathieu, if you're comfortable building X from source
I'm afraid I'd prefer to wait for a more easy way, like a package...
Ok so, let's keep an eye on the xserver package for karmic (which I think will get updated to the 1.7 bits eventually). Once that's out you can just download and boot and ISO and test from that live CD: https://launchpad.net/ubuntu/+source/xorg-server OK, I will check with Ubuntu Karmic then. I'm closing this bug as FIXED. It works with current git but cherry-picking them back to 1.6.x is likely not happening. Sorry. |
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.