[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xserver-xorg-input-synaptics: Changes to 'ubuntu'



 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.douglas@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.douglas@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.douglas@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.douglas@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


Reply to: