Bug 78309

Summary: Plugging 12+ USB devices, error in src/evdev.c: no such file
Product: xorg Reporter: proyectomultik
Component: Input/evdevAssignee: Peter Hutterer <peter.hutterer>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium CC: peter.hutterer, proyectomultik
Version: 7.7 (2012.06)   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
GDB X.org Backtrace
none
Xorg.log none

Description proyectomultik 2014-05-05 19:23:32 UTC
Created attachment 98513 [details]
GDB X.org Backtrace

When plugging 12 USB keyboards + 4 USB hubs in desktop computer, X.org crashes and closes. I can access the terminal, but trying to restart X throws an error. 

As seen in the backtrace, the problem is in EvdevIsDuplicate (evdev.c), when trying to open a new device.

I am using Ubuntu 12.04 and kernel 3.11.0-20-generic. When using kernel 3.6 and plugging the same devices, there is no crash.

I think this may be related to dynamic minor allocation in evdev, which was pushed to linux kernel in version 3.7:

https://groups.google.com/forum/#!topic/linux.kernel/TymfXEsu7GA 
https://groups.google.com/forum/#!topic/linux.kernel/WgBgg-dHB1s

Why do I need to plug that many keyboards? It is a multiseat project, currently being tested in chilean elementary schools :)
Comment 1 proyectomultik 2014-05-05 19:24:33 UTC
Created attachment 98514 [details]
Xorg.log
Comment 2 Peter Hutterer 2014-05-06 00:43:11 UTC
http://patchwork.freedesktop.org/patch/25452/
Comment 3 Peter Hutterer 2014-05-07 23:24:31 UTC
commit 13dea90bc8ef2a2e6f55fb5ff5f54afe41d22f95
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue May 6 09:20:05 2014 +1000

    Use the server's device list for duplicate detection (#78309)
Comment 4 proyectomultik 2014-05-14 21:25:39 UTC
Tested with 24 keyboards and it's working. Thank you.

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.