[sr-dev] xmlrcp request takes very long time
Andrei Pelinescu-Onciul
andrei at iptel.org
Mon Jul 6 14:45:57 CEST 2009
On Jul 04, 2009 at 17:30, Juha Heinanen <jh at tutpro.com> wrote:
> i wrote in python a simple text that sends domain_reload command over s
> xmlrpc interface to sr:
[...]
> T 2009/07/04 17:20:02.455358 127.0.0.1:33418 -> 127.0.0.1:6060 [AP]
> <?xml version='1.0'?>.<methodCall>.<methodName>domain_reload</methodName>.<
> params>.</params>.</methodCall>.
> ##
> T 2009/07/04 17:20:02.455718 127.0.0.1:6060 -> 127.0.0.1:33418 [AP]
> HTTP/1.0 200 OK..Via: SIP/2.0/TCP 127.0.0.1:33418..Server: SIP Route
> r (2.99.0-dev01-serk (i386/linux))..Content-Length: 274....<?xml version="1
> .0"?>.<methodResponse>.<fault>.<value>.<struct>.<member>.<name>faultCode</n
> ame>.<value><int>500</int></value>.</member>.<member>.<name>faultString</na
> me>.<value><string>Method Not Found</string></value>.</member>.</struct>.</
> value>.</fault>.</methodResponse>
>
> however, python client program does not terminate until after more
> than 2 minutes. then it finally prints:
The reply looks ok to me. I've tried quickly writing an xmlrpc in perl
(using XMLRPC::Lite) and tested using core rpcs and it works both with
normal answers and with faults.
E.g:
time perl ~/sr.git/xmlrpc_test.pl foobar
fault{
faultCode: 500
faultString: Method Not Found
}
real 0m0.240s
>
> Traceback (most recent call last):
> File "sr-xmlrpc.py", line 15, in <module>
> erg = c.domain_reload()
> File "/usr/lib/python2.5/xmlrpclib.py", line 1147, in __call__
> return self.__send(self.__name, args)
> File "/usr/lib/python2.5/xmlrpclib.py", line 1437, in __request
> verbose=self.__verbose
> File "/usr/lib/python2.5/xmlrpclib.py", line 1201, in request
> return self._parse_response(h.getfile(), sock)
> File "/usr/lib/python2.5/xmlrpclib.py", line 1340, in _parse_response
> return u.close()
> File "/usr/lib/python2.5/xmlrpclib.py", line 787, in close
> raise Fault(**self._stack[0])
> xmlrpclib.Fault: <Fault 500: 'Method Not Found'>
>
> i also tested with a php xmlrcp client with same result.
>
> any idea why it takes so long and why parsing of response fails? is
> something missing from the response?
I don't know why is taking so long (especially since the reply is sent
immediately after the request). However I don't think the parsing fails.
I'm not familiar with python xmlrpc, but
xmlrpclib.Fault: <Fault 500: 'Method Not Found' looks ok given the
reply.
You get a fault reply because you try to call domain_reload which does
not exist (the correct rpc name is domain.reload).
Andrei
More information about the sr-dev
mailing list