debian/changelog | 7 ++++ debian/patches/124_syndaemon_events.patch | 46 ++++++++++++++++++++++++++++++ debian/patches/series | 1 3 files changed, 54 insertions(+)
New commits: commit d19bc45c8336747f35ca35dfc510d2f5416e9f31 Author: Chase Douglas <chase.doug...@canonical.com> Date: Fri Apr 15 15:40:53 2011 -0400 syndaemon: Drain spurious events from XRecord connection as a work around for a buggy X server. This keeps syndaemon from busy looping (LP: #754470) diff --git a/debian/changelog b/debian/changelog index aa5d1c3..7554fe1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +xserver-xorg-input-synaptics (1.3.99+git20110116.0e27ce3a-0ubuntu12) UNRELEASED; urgency=low + + * syndaemon: Drain spurious events from XRecord connection as a work around + for a buggy X server. This keeps syndaemon from busy looping (LP: #754470) + + -- Chase Douglas <chase.doug...@ubuntu.com> Thu, 14 Apr 2011 14:15:33 -0400 + xserver-xorg-input-synaptics (1.3.99+git20110116.0e27ce3a-0ubuntu11) natty; urgency=low * Fix jumpy cursor on multitouch trackpads (LP: #751525) diff --git a/debian/patches/124_syndaemon_events.patch b/debian/patches/124_syndaemon_events.patch new file mode 100644 index 0000000..31f0087 --- /dev/null +++ b/debian/patches/124_syndaemon_events.patch @@ -0,0 +1,46 @@ +From b68ca129acfe56714a79230aa07c2b4b0249fb42 Mon Sep 17 00:00:00 2001 +From: Chase Douglas <chase.doug...@canonical.com> +Date: Fri, 15 Apr 2011 15:23:17 -0400 +Subject: [PATCH xf86-input-synaptics] Drain XRecord connection of any events after handling replies + +If the X server sends an event to the XRecord connection the event +will never be handled. This will cause the event queue to fill up in +Xlib and lead to syndaemon running away at 100% cpu usage. + +This change drains any events from the connection. It's not a fix for +the underlying bug in the server or Xlib, but it does paper over the +issue for now. + +https://bugs.launchpad.net/bugs/754470 +http://bugs.freedesktop.org/show_bug.cgi?id=31921 + +Signed-off-by: Chase Douglas <chase.doug...@canonical.com> +--- +I'm offering this up as a work around for whatever real bug exists. It +probably should not be committed upstream though. + + tools/syndaemon.c | 8 ++++++++ + 1 files changed, 8 insertions(+), 0 deletions(-) + +diff --git a/tools/syndaemon.c b/tools/syndaemon.c +index 0309fb5..1c799c6 100644 +--- a/tools/syndaemon.c ++++ b/tools/syndaemon.c +@@ -415,6 +415,14 @@ void record_main_loop(Display* display, double idle_time) { + + XRecordProcessReplies(dpy_data); + ++ /* If there are any events left over, they are in error. Drain them ++ * from the connection queue so we don't get stuck. */ ++ while (XEventsQueued(dpy_data, QueuedAlready) > 0) { ++ XEvent event; ++ XNextEvent(dpy_data, &event); ++ fprintf(stderr, "bad event received, major opcode %d\n", event.type); ++ } ++ + if (!ignore_modifier_keys && cbres.key_event) { + disable_event = 1; + } +-- +1.7.4.1 + diff --git a/debian/patches/series b/debian/patches/series index 36fa8e8..68b6bb6 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -15,3 +15,4 @@ 121_semi-mt_num_fingers.patch 122_revert_pressure_finger_default.patch 123_order_ProcessTouch_for_numFingers.patch +124_syndaemon_events.patch -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1qaovg-0005f7...@alioth.debian.org