From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: [PATCH] Explicitly shutdown XML-RPC session for non-Keep Alive sessions Date: Thu, 22 Jun 2006 09:01:54 -0500 Message-ID: <449AA2D2.4010106@us.ibm.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------050204050204010603040202" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel , Ewan Mellor List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------050204050204010603040202 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit The follow patch explicitly shutdowns an XML-RPC session for non Keep-Alive sessions. This fixes the HVM domain creation problem (although I still am unsure whether we need to daemonize qemu-dm). Regards, Anthony Liguori --------------050204050204010603040202 Content-Type: text/plain; name="xend-keep-alive-hvm.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="xend-keep-alive-hvm.diff" # HG changeset patch # User Anthony Liguori # Node ID ddd4d7e3d79e8bf4999c820fdb5e003d31283d5f # Parent 411a3c01bb40681731ad50fd3b8c5d7972baf36d Make sure to explicitly close the connection if we're using HTTP/1.0. This shouldn't be needed but it appears to be necessary as the Python client just does a wfile.read() instead of only reading the reported Content-Length. Signed-off-by: Anthony Liguori diff -r 411a3c01bb40 -r ddd4d7e3d79e tools/python/xen/util/xmlrpclib2.py --- a/tools/python/xen/util/xmlrpclib2.py Tue Jun 20 18:51:46 2006 +0100 +++ b/tools/python/xen/util/xmlrpclib2.py Wed Jun 21 16:47:48 2006 -0500 @@ -58,8 +58,6 @@ class XMLRPCRequestHandler(SimpleXMLRPCR # propagate so that it shows up in the Xend debug logs # 2) we don't bother checking for a _dispatch function since we don't # use one - # 3) we never shutdown the connection. This appears to be a bug in - # SimpleXMLRPCServer.py as it breaks HTTP Keep-Alive def do_POST(self): data = self.rfile.read(int(self.headers["content-length"])) rsp = self.server._marshaled_dispatch(data) @@ -71,6 +69,8 @@ class XMLRPCRequestHandler(SimpleXMLRPCR self.wfile.write(rsp) self.wfile.flush() + if self.close_connection == 1: + self.connection.shutdown(1) class HTTPUnixConnection(HTTPConnection): def connect(self): --------------050204050204010603040202 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------050204050204010603040202--