[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] xmlrpclib.ProtocolError: <ProtocolError for /RPC2: -1 >
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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |