Thread (8 messages) 8 messages, 3 authors, 2008-02-12

Re: event devices not released

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2008-02-11 16:58:31

Hi Erik,

On Mon, Feb 11, 2008 at 01:47:41PM +0100, Erik Slagter wrote:
Hi,

I think I've found a bug :-/

Symptoms: when I remove (unplug) a USB keyboard or mouse, the corresponding 
event device seems to be closed but not released; when I plug the device 
back in, it gets a new input device handle. This means that after several 
suspend/resume cycles (in which it seems all usb devices are virtually 
unplugged and replugged) the kernel is out of event devices and complains 
likewise. My nice little program that catches specific keystrokes also 
stops to get any interesting events from that moment on. After reboot 
everything works again as expected.

I've seen a similar bug report on linux-kernel but it wasn't followed up 
on. Also this only mentioned problems through suspend cycles while I also 
have the problem simply plugging in and out.

Environment: linux kernel 2.6.24 vanilla on i386. The event files are held 
open by one or more processes when the devices are unplugged. Unfortunatly 
my program is not the only one that has them open, but hald and Xorg also 
have some of the devices open, so I cannot prevent this situation. Upon 
POLLERR | POLLHUP my app closes all event devices and rescans the 
/dev/input directory, this should be enough imho? I don't know how the 
other apps handle unplugging.
What happens if you kill HAL and X and leave only your application
running? Do event devices get released/reused in this case? Do you
see POLLERR or POLLHUP signals devlievered to your app?

-- 
Dmitry
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help