WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] xmlrpclib.ProtocolError: <ProtocolError for /RPC2: -1 >

To: Hollis Blanchard <hollisb@xxxxxxxxxx>
Subject: Re: [Xen-devel] xmlrpclib.ProtocolError: <ProtocolError for /RPC2: -1 >
From: Ewan Mellor <ewan@xxxxxxxxxxxxx>
Date: Wed, 9 Aug 2006 09:37:55 +0100
Cc: xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Wed, 09 Aug 2006 01:38:17 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <1155086643.30116.296.camel@xxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <1155086643.30116.296.camel@xxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.9i
On Tue, Aug 08, 2006 at 08:24:03PM -0500, Hollis Blanchard wrote:

> I'm getting this error when trying to create a domain:
> 
> Unexpected error: xmlrpclib.ProtocolError
> 
> Please report to xen-devel@xxxxxxxxxxxxxxxxxxx
> Traceback (most recent call last):
>   File "/usr/sbin/xm", line 10, in ?
>     main.main(sys.argv)
>   File "/usr/lib/python/xen/xm/main.py", line 1233, in main
>     rc = cmd(args)
>   File "<string>", line 1, in <lambda>
>   File "/usr/lib/python/xen/xm/main.py", line 598, in xm_subcommand
>     cmd.main([command] + args)
>   File "/usr/lib/python/xen/xm/create.py", line 1124, in main
>     dom = make_domain(opts, config)
>   File "/usr/lib/python/xen/xm/create.py", line 931, in make_domain
>     raise ex
> xmlrpclib.ProtocolError: <ProtocolError for /RPC2: -1 >
> 
> First I would like to propose this patch, which keeps the full traceback
> intact:
> diff -r 0ec0cb99f712 tools/python/xen/xm/create.py
> --- a/tools/python/xen/xm/create.py     Tue Aug 08 18:58:53 2006 -0500
> +++ b/tools/python/xen/xm/create.py     Tue Aug 08 19:29:25 2006 -0500
> @@ -928,7 +928,7 @@ def make_domain(opts, config):
>          import signal
>          if vncpid:
>              os.kill(vncpid, signal.SIGKILL)
> -        raise ex
> +        raise
> 
>      dom = sxp.child_value(dominfo, 'name')

Yes, I'll drop that in.

> Here's the full traceback:
> Unexpected error: xmlrpclib.ProtocolError
> 
> Please report to xen-devel@xxxxxxxxxxxxxxxxxxx
> Traceback (most recent call last):
>   File "/usr/sbin/xm", line 10, in ?
>     main.main(sys.argv)
>   File "/usr/lib/python/xen/xm/main.py", line 1233, in main
>     rc = cmd(args)
>   File "<string>", line 1, in <lambda>
>   File "/usr/lib/python/xen/xm/main.py", line 598, in xm_subcommand
>     cmd.main([command] + args)
>   File "/usr/lib/python/xen/xm/create.py", line 1124, in main
>     dom = make_domain(opts, config)
>   File "/usr/lib/python/xen/xm/create.py", line 913, in make_domain
>     dominfo = server.xend.domain.create(config)
>   File "/usr/lib/python2.3/xmlrpclib.py", line 1032, in __call__
>     return self.__send(self.__name, args)
>   File "/usr/lib/python/xen/util/xmlrpclib2.py", line 121, in __request
>     response = xmlrpclib.ServerProxy.__request(self, methodname, params)
>   File "/usr/lib/python2.3/xmlrpclib.py", line 1319, in __request
>     verbose=self.__verbose
>   File "/usr/lib/python/xen/util/xmlrpclib2.py", line 86, in request
>     return Transport.request(self, host, '/RPC2', request_body, verbose)
>   File "/usr/lib/python2.3/xmlrpclib.py", line 1073, in request
>     headers
> xmlrpclib.ProtocolError: <ProtocolError for /RPC2: -1 >
> 
> It looks like the problem is that I've done something in C to crash the
> python interpreter for Xend, or at least this message
> in /var/log/xend.log is my only clue:
> 
> [2006-08-08 21:14:48 xend 1153] CRITICAL (SrvDaemon:195) Xend died due
> to signal 9!  Restarting it.

Yes, you've probably had one thread segfault; after that, the underlying
threading implementation sends SIGKILL to all the other threads, hence the
signal 9 appearing here.

> Could we get a little better error-handling here? I don't know what the
> right way is to detect that the other end of the XMLRPC connection has
> gone away.

I've put a catch into main.py for xmlrpclib.ProtocolError, which at least will
be a bit prettier.  In the longer term, we might want to consider some retry
behaviour, but that can come later.

Ewan.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>