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

[Xen-devel] [OSSTEST PATCH] ms-queuedaemon: Do not spin if client input is delayed/truncated



chan-read-data would spin if `read' returns early because of
nonblocking mode.

Check whether the return value is the empty string (which can only
happen on eof or nonblocking lack of data, and we checked eof just
before), and if so, simply return.  The fileevent remains set up so we
will be called again when more data arrives.

(Deployment/testing note: this change is currently live in Cambridge,
as I cowboyed it directly into ~osstest/daemons-testing.git, on
observing this misbehaviour.)

Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
---
 tcl/daemonlib.tcl |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/tcl/daemonlib.tcl b/tcl/daemonlib.tcl
index 55bc385..972b5e2 100644
--- a/tcl/daemonlib.tcl
+++ b/tcl/daemonlib.tcl
@@ -166,6 +166,9 @@ proc chan-read-data {chan} {
                chan-destroy $chan
                return
            }
+            if {![string length $got]} {
+               return
+           }
            append data $got
            incr len -[string length $got]
        }
-- 
1.7.10.4


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.