Bug#547186: g15daemon: Random crashes
Nov 5 08:55:20 Skuld g15daemon: Process died - removing pidfile Nov 5 08:55:21 Skuld g15daemon[4326]: Booting plugin "Clock" Nov 5 08:55:21 Skuld g15daemon[4326]: Plugin "Clock" boot successful. Nov 5 08:55:21 Skuld g15daemon[4326]: Booting plugin "Linux UINPUT Keyboard Output" Nov 5 08:55:21 Skuld g15daemon[4326]: Plugin "Linux UINPUT Keyboard Output" boot successful. Nov 5 08:55:21 Skuld g15daemon[4326]: Booting plugin "LCDServer" Nov 5 08:55:21 Skuld g15daemon[4326]: Plugin "LCDServer" boot successful. Nov 5 09:03:39 Skuld g15daemon[452]: Booting plugin "Clock" Nov 5 09:03:39 Skuld g15daemon[452]: Plugin "Clock" boot successful. Nov 5 09:03:39 Skuld g15daemon[452]: Booting plugin "Linux UINPUT Keyboard Output" Nov 5 09:03:39 Skuld g15daemon[452]: Plugin "Linux UINPUT Keyboard Output" boot successful. Nov 5 09:03:39 Skuld g15daemon[452]: Booting plugin "LCDServer" Nov 5 09:03:39 Skuld g15daemon[452]: Plugin "LCDServer" boot successful. Nov 5 09:03:39 Skuld g15daemon[666]: Starting g15daemon: Nov 5 09:03:39 Skuld systemd[1]: g15daemon.service: control process exited, code=exited status=1 Nov 5 09:03:39 Skuld systemd[1]: Unit g15daemon.service entered failed state. Nov 5 09:05:22 Skuld g15daemon: Process died - removing pidfile Nov 5 09:05:22 Skuld g15daemon[1724]: Starting g15daemon: g15daemon. Nov 5 09:05:22 Skuld g15daemon[1726]: Booting plugin "Clock" Nov 5 09:05:22 Skuld g15daemon[1726]: Plugin "Clock" boot successful. Nov 5 09:05:23 Skuld g15daemon[1726]: Booting plugin "Linux UINPUT Keyboard Output" Nov 5 09:05:23 Skuld g15daemon[1726]: Plugin "Linux UINPUT Keyboard Output" boot successful. Nov 5 09:05:23 Skuld g15daemon[1726]: Booting plugin "LCDServer" root@Skuld:/home/david# dmesg | grep G15 [3.141971] usb 3-2: Product: G15 Keyboard Hub [3.859959] usb 3-2.1: Product: G15 Gaming Keyboard [3.871812] input: G15 Gaming Keyboard as /devices/pci:00/:00:02.0/usb3/3-2/3-2.1/3-2.1:1.0/0003:046D:C226.0008/input/input17 [3.944498] hid-generic 0003:046D:C226.0008: input,hidraw7: USB HID v1.10 Keyboard [G15 Gaming Keyboard] on usb-:00:02.0-2.1/input0 [3.959826] input: G15 Gaming Keyboard as /devices/pci:00/:00:02.0/usb3/3-2/3-2.1/3-2.1:1.1/0003:046D:C226.0009/input/input18 [4.015946] hid-generic 0003:046D:C226.0009: input,hiddev0,hidraw8: USB HID v1.10 Device [G15 Gaming Keyboard] on usb-:00:02.0-2.1/input1 [4.214942] usb 3-2.4: Product: G15 GamePanel LCD [4.242145] input: G15 GamePanel LCD as /devices/pci:00/:00:02.0/usb3/3-2/3-2.4/3-2.4:1.0/0003:046D:C227.000A/input/input26 [4.296217] hid-generic 0003:046D:C227.000A: input,hiddev0,hidraw9: USB HID v1.11 Keypad [G15 GamePanel LCD] on usb-:00:02.0-2.4/input0 [5.236808] input: G15 Extra Keys as /devices/virtual/input/input27 [ 109.722558] input: G15 Extra Keys as /devices/virtual/input/input28
Bug#547186: g15daemon: Random crashes
The crashes are not so random any more. They happen every time when music stops playing. This was not simple to find, because I use ALSA with the dmix plugin (but without any sound daemon like ESD or PulseAudio). Usually I pause my music (XMMS) and sometimes my browser has some Flash applets running which also occupy the audio output. So audio is not always stopped, when I hear it to stop. So, I found out that when I start music (e.g. with a simple aplay xyz.wav) without any other program doing sound output, g15daemon is automagically started by udevd. As soon as the music stops (^C to aplay) g15daemon is stopped by udevd. I've set the G15DEBUG=on in /etc/default/g15daemon and activated moderate debug output by udev with udevadm control --log-priority info The output as observed in /var/log/syslog is attached in the two files syslog-aplay-{start,stop}.txt. It seems that every time aplay (or any other sound output) is running, the device file /dev/usbdev2.3_ep01 is created. Endpoint 1 (OUT) is the AudioStreaming isochronous endpoint. It seems that this magically turns up upon audio output and vanishes afterwards. OTOH, according to lsusb, the USB descriptor doesn't change at all in these two conditions (see attached files lsusb-z10-{playing,silent}.txt), the only difference is the Report Descriptor which seems cannot be queried during audio output. So, the first question is: Why does udev send add and remove events just because an USB device is used although no endpoints are added or removed? The second question is: Why do the G15 scripts start and stop the g15daemon for each of these events? I've now added some more debug output on the udev environment variables and found the following information when starting and stopping playing audio output: Sep 23 21:40:16 hansi g15: calling g15 udev; action: add, product , devtype , devname /dev/usbdev2.6_ep01, subsystem usb_endpoint Sep 23 21:40:17 hansi g15: calling g15 udev; action: remove, product , devtype , devname /dev/usbdev2.6_ep01, subsystem usb_endpoint It should be possible to add conditions to /etc/init.d/g15daemon to avoid these problems. Additionally I think the additional shared-udev parameter can be removed. When the G15 speakers are plugged in and removed from the USB bus, the debug output by /etc/init.d/g15daemon is as shown in the attached files usb-{plugin,remove}-z10.txt (note that usb-plugin-z10.txt is partly cluttered by a concurrently playing sound). The unique removal event is action: remove, product 46d/a07/1e, devtype usb_interface, devname , subsystem usb while for the plugin of the speakers the devtype usb_interface event is twice. So I suggest to use the following event: action: add, product 46d/a07/1e, devtype usb_device, devname /dev/bus/usb/002/006, subsystem usb Unfortunately a little delay is necessary because g15daemon wants to open /dev/uinputX (or so) which will be populated shortly after this event. I've added these additional conditions to the script, see attached patch etc-init.d-g15daemon.patch. With these changes g15daemon is not killed any more and works flawlessly. But please check with other supported devices. As already mentioned, I think that then the special shared-udev parameter of the script can be removed. Bye Hansi Sep 23 21:04:01 hansi udevd[1103]: seq 2995 queued, 'add' 'usb_endpoint' Sep 23 21:04:01 hansi udevd[1103]: seq 2995 forked, pid [31305], 'add' 'usb_endpoint', 0 seconds old Sep 23 21:04:01 hansi udevd-event[31305]: device 0x96510b0 has devpath '/devices/pci:00/:00:1d.0/usb2/2-2/2-2:1.1/usb_endpoint/usbdev2.3_ep01' Sep 23 21:04:01 hansi udevd-event[31305]: LINK 'char/251:17' /lib/udev/rules.d/50-udev.rules:2 Sep 23 21:04:01 hansi udevd-event[31305]: device 0x967b270 has devpath '/devices/pci:00/:00:1d.0/usb2/2-2/2-2:1.1' Sep 23 21:04:01 hansi udevd-event[31305]: device 0x96801c8 has devpath '/devices/pci:00/:00:1d.0/usb2/2-2' Sep 23 21:04:01 hansi udevd-event[31305]: device 0x96809a8 has devpath '/devices/pci:00/:00:1d.0/usb2' Sep 23 21:04:01 hansi udevd-event[31305]: device 0x9680890 has devpath '/devices/pci:00/:00:1d.0' Sep 23 21:04:01 hansi udevd-event[31305]: device 0x9680c10 has devpath '/devices/pci:00' Sep 23 21:04:01 hansi udevd-event[31305]: RUN 'socket:@/org/freedesktop/hal/udev_event' /lib/udev/rules.d/90-hal.rules:2 Sep 23 21:04:01 hansi udevd-event[31305]: RUN '/etc/init.d/g15daemon udev' /etc/udev/rules.d/z60_g15daemon.rules:16 Sep 23 21:04:01 hansi udevd-event[31305]: no node name set, will use kernel name 'usbdev2.3_ep01' Sep 23 21:04:01 hansi udevd-event[31305]: create db link (usbdev2.3_ep01 char/251:17) Sep 23 21:04:01 hansi udevd-event[31305]: creating device node '/dev/usbdev2.3_ep01', devnum=251:17, mode=0660, uid=0, gid=0 Sep 23 21:04:01 hansi udevd-event[31305]: mknod(/dev/usbdev2.3_ep01, 020660, (251,17)) Sep 23 21:04:01 hansi udevd-event[31305]: chmod(/dev/usbdev2.3_ep01,
Bug#547186: g15daemon: Random crashes
Am Freitag, den 18.09.2009, 12:55 +0200 schrieb Giacomo A. Catenazzi: Could you check in /var/log/syslog, if at the time of the crash there is some additional information? The daemon is terminated with SIGKILL, and this signal should not be caused by the daemon itself (SEGSEGV, SIGILL, SIGBUS, etc. are delivered for internal errors). So I think an external program/setting will send such signals, on passing some limits or with invalid permissions. So I expect ulimits, acct, selinux, etc to send the signal. No, there is no additional info in syslog, not from g15daemon and not from any other program or setting, except the announcement of the new keyboard kernel: [ 175.245228] input: G15 Extra Keys as /devices/virtual/input/input7 but this comes directly after the start of g15daemon, not before its crash. I don't have selinux or acct running, neither do I set special ulimits for any program. Bye Hansi -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#547186: g15daemon: Random crashes
Could you check in /var/log/syslog, if at the time of the crash there is some additional information? The daemon is terminated with SIGKILL, and this signal should not be caused by the daemon itself (SEGSEGV, SIGILL, SIGBUS, etc. are delivered for internal errors). So I think an external program/setting will send such signals, on passing some limits or with invalid permissions. So I expect ulimits, acct, selinux, etc to send the signal. ciao cate -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#547186: g15daemon: Random crashes
Package: g15daemon Version: 1.9.5.3-6 Severity: grave Justification: renders package unusable g15daemon crashes after a few minutes when used with the Z-10 speakers. Not tested with G15 keyboard. -- System Information: Debian Release: squeeze/sid APT prefers testing-proposed-updates APT policy: (500, 'testing-proposed-updates'), (500, 'proposed-updates'), (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.30-1-686 (SMP w/2 CPU cores) Locale: LANG=de_AT.UTF-8, LC_CTYPE=de_AT.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages g15daemon depends on: ii libc6 2.9-26GNU C Library: Shared libraries ii libfreetype6 2.3.9-5 FreeType 2 font engine, shared lib ii libg15-1 1.2.7-2 Library for interfacing with the L ii libg15daemon-client1 1.9.5.3-6 Development packages for libg15dae ii libg15render1 1.3.0~svn316-2Library for interfacing with the L ii libusb-0.1-4 2:0.1.12-13 userspace USB programming library ii zlib1g 1:1.2.3.3.dfsg-15 compression library - runtime Versions of packages g15daemon recommends: ii xkb-data 1.6-1 X Keyboard Extension (XKB) configu g15daemon suggests no packages. -- no debconf information g15daemon.strace.gz Description: GNU Zip compressed data
Bug#547186: g15daemon: Random crashes
Could you send also the output of grep g15daemon /var/log/syslog thanks cate -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#547186: g15daemon: Random crashes
It just says things like: Sep 17 19:23:37 hansi g15daemon: Process died - removing pidfile Sep 17 19:23:37 hansi g15daemon[26352]: Booting plugin Linux UINPUT Keyboard Output Sep 17 19:23:37 hansi g15daemon[26352]: Plugin Linux UINPUT Keyboard Output boot successful. Sep 17 19:23:37 hansi g15daemon[26352]: Booting plugin Clock Sep 17 19:23:37 hansi g15daemon[26352]: Plugin Clock boot successful. Sep 17 19:23:37 hansi g15daemon[26352]: Booting plugin LCDServer Sep 17 19:23:38 hansi g15daemon[26352]: Plugin LCDServer boot successful. There is no additional information. -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org