Bugzilla – Bug 402569
hald-addon-input looping @ 100% CPU
Last modified: 2008-06-25 13:01:09 UTC
openSUSE 10.3 system, sometimes (preferably after a suspend-resume cycle, but this does not seem to be a prerequisite), hald-addon-input seems to end up in an endless loop -- the fan informs me about it: it eats 100% CPU then. (Lenovo Thinkpad X61 tablet -- openSUSE10.3, x86-64, kernel 2.6.25.5-1.1, hal-0.5.9_git20070831-13.3, glib2-2.14.1-4.2) 0x00007f0ae7a149af in *__GI___poll (fds=0x610880, nfds=11, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:83 83 return INLINE_SYSCALL (poll, 3, CHECK_N (fds, nfds), nfds, timeout); (gdb) bt #0 0x00007f0ae7a149af in *__GI___poll (fds=0x610880, nfds=11, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:83 #1 0x00007f0ae7cd1367 in g_main_context_iterate (context=0x6073c0, block=1, dispatch=1, self=<value optimized out>) at gmain.c:2996 #2 0x00007f0ae7cd17f7 in IA__g_main_loop_run (loop=0x606cc0) at gmain.c:2898 #3 0x0000000000402005 in main (argc=<value optimized out>, argv=<value optimized out>) at addon-input.c:478 (gdb) f 2 #2 0x00007f0ae7cd17f7 in IA__g_main_loop_run (loop=0x606cc0) at gmain.c:2898 2898 g_main_context_iterate (loop->context, TRUE, TRUE, self); (gdb) p *(loop->context) $4 = {mutex = {runtime_mutex = 0x0, static_mutex = {pad = '\0' <repeats 39 times>, dummy_double = 0, dummy_pointer = 0x0, dummy_long = 0}}, cond = 0x0, owner = 0x609150, owner_count = 2, waiters = 0x0, ref_count = 3, pending_dispatches = 0x608200, timeout = -1, next_id = 231, source_list = 0x606620, in_check_or_prepare = 0, poll_records = 0x608900, n_poll_records = 11, cached_poll_array = 0x610880, cached_poll_array_size = 11, wake_up_pipe = {-1, -1}, wake_up_rec = {fd = 0, events = 0, revents = 0}, poll_waiting = 1, poll_changed = 0, poll_func = 0x7f0ae7a14980 <*__GI___poll>, current_time = {tv_sec = 0, tv_usec = 0}, time_is_current = 0} Hints on how to debug this are welcome.
(gdb) f 0 #0 0x00007f0ae7a149af in *__GI___poll (fds=0x610880, nfds=11, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:83 83 return INLINE_SYSCALL (poll, 3, CHECK_N (fds, nfds), nfds, timeout); (gdb) p *fds $6 = {fd = 4, events = 1, revents = 0} (gdb) p timeout $7 = -1 root@tpkurt2:~ [0]# ll /proc/23823/fd total 0 lr-x------ 1 root root 64 2008-06-22 15:45 0 -> /dev/null lrwx------ 1 root root 64 2008-06-22 15:45 1 -> /dev/null lr-x------ 1 root root 64 2008-06-22 15:45 10 -> /dev/input/event8 lrwx------ 1 root root 64 2008-06-22 15:45 2 -> /dev/null lrwx------ 1 root root 64 2008-06-22 15:45 3 -> socket:[504884] lr-x------ 1 root root 64 2008-06-22 15:45 4 -> /dev/input/event3 lr-x------ 1 root root 64 2008-06-22 15:45 5 -> /dev/input/event4 lr-x------ 1 root root 64 2008-06-22 15:45 6 -> /dev/input/event5 lr-x------ 1 root root 64 2008-06-22 15:45 7 -> /dev/input/event0 lr-x------ 1 root root 64 2008-06-22 15:45 8 -> /dev/input/event6 lr-x------ 1 root root 64 2008-06-22 15:45 9 -> /dev/input/event7
*** This bug has been marked as a duplicate of bug 344872 ***