← Back to team overview

ubuntu-x-swat team mailing list archive

[Bug 754470] Re: syndaemon consumes 100% CPU

 

This bug annoys me greatly.

Tried your package as well. It remains silent. No debug output at all.

I don't know which changes you tried, but I've tried putting some
printf() hooks within xrecord_callback(), e.g.:

    cbres = (struct xrecord_callback_results *)closure;

    int check = recorded_data->category != XRecordFromServer;

    static int i=0;
    printf("event %d [%d]!\n", i++, check);

    if (recorded_data->category != XRecordFromServer) {

This code path, under normal operation, is supposed to be called. When
the process is spinning, it seems to not enter xrecord_callback() at
all. The events received are not key events, as is visible from this gdb
extract (I compiled the package with -g):

(gdb) fin
Run till exit from #0  0x00007f187e3ab123 in __select_nocancel ()
    at ../sysdeps/unix/syscall-template.S:82
0x0000000000401fb2 in record_main_loop (display=0x140b010, idle_time=0.5)
    at ../../tools/syndaemon.c:413
413             ret = select(fd+1 /* =(max descriptor in read_fds) + 1 */,
(gdb) n
417             if (FD_ISSET(fd, &read_fds)) {
(gdb) 
419                 cbres.key_event = 0;
(gdb) 
420                 cbres.non_modifier_event = 0;
(gdb) 
422                 XRecordProcessReplies(dpy_data);
(gdb) 
424                 if (!ignore_modifier_keys && cbres.key_event) {
(gdb) p cbres
$1 = {modifiers = 0x1418ae0, key_event = 0, non_modifier_event = 0, 
  pressed_modifiers = '\000' <repeats 15 times>}
(gdb) n
428                 if (cbres.non_modifier_event &&
(gdb) 
434             if (disable_event) {
(gdb) p disable_event 
$2 = 0
(gdb) p pad_disabled 
$3 = 0

I'll keep hunting a bit.

E.

-- 
You received this bug notification because you are a member of Ubuntu-X,
which is subscribed to xserver-xorg-input-synaptics in Ubuntu.
https://bugs.launchpad.net/bugs/754470

Title:
  syndaemon consumes 100% CPU



References