With the mmkbd-evdev module enabled e.g. like so in ~/.pulse/default: load-module module-mmkbd-evdev device=/dev/input/by-id/usb-0430_Sun_USB_Keyboard-event-kbd pulseaudio crashes when that keyboard is unplugged. The following messages are logged to syslog: Jul 3 19:21:17 hostname pulseaudio[11515]: [pulseaudio] module-mmkbd-evdev.c: Lost connection to evdev device. Jul 3 19:21:17 hostname pulseaudio[11515]: [pulseaudio] module-mmkbd-evdev.c: Assertion 'pa_close(u->fd) == 0' failed at modules/module-mmkbd-evdev.c:260, function module_mmkbd_evdev_LTX_pa__done(). Aborting. I would guess that the fd has already been closed and close(2) returns EBADF to pa_close().
I should have mentioned that this is pulseaudio 5.0 on an up to date Debian/unstable system running kernel 3.14.
6.0 blocker. Shouldn't be hard to fix...
(In reply to comment #2) > 6.0 blocker. Shouldn't be hard to fix... I had a look but didn't find anything obvious. My guess is that the kernel reports something strange on close, such as -ENODEV or something, instead of just closing it. Stelios, can you check what error we get on pa_close?
(In reply to comment #3) > (In reply to comment #2) > > 6.0 blocker. Shouldn't be hard to fix... > > I had a look but didn't find anything obvious. My guess is that the kernel > reports something strange on close, such as -ENODEV or something, instead of > just closing it. Stelios, can you check what error we get on pa_close? Yes, indeed, after pa_close returns -1, errno is set to ENODEV.
Thanks, patch posted here: http://lists.freedesktop.org/archives/pulseaudio-discuss/2014-September/021617.html
I pushed the patch now.
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.