Hollis Blanchard
2006-Aug-09 01:24 UTC
[Xen-devel] xmlrpclib.ProtocolError: <ProtocolError for /RPC2: -1 >
I''m getting this error when trying to create a domain:
Unexpected error: xmlrpclib.ProtocolError
Please report to xen-devel@lists.xensource.com
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'')
Here''s the full traceback:
Unexpected error: xmlrpclib.ProtocolError
Please report to xen-devel@lists.xensource.com
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.
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.
--
Hollis Blanchard
IBM Linux Technology Center
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
Ewan Mellor
2006-Aug-09 08:37 UTC
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@lists.xensource.com > 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@lists.xensource.com > 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@lists.xensource.com http://lists.xensource.com/xen-devel
Hollis Blanchard
2006-Aug-09 15:24 UTC
Re: [Xen-devel] xmlrpclib.ProtocolError: <ProtocolError for /RPC2: -1 >
On Wed, 2006-08-09 at 09:37 +0100, Ewan Mellor wrote:> > > 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.Thanks Ewan, the patch you committed looks helpful for those of us breaking python modules... ;) -- Hollis Blanchard IBM Linux Technology Center _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel