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