[sr-dev] xmlrcp request takes very long time

Juha Heinanen jh at tutpro.com
Sat Jul 4 16:30:00 CEST 2009


i wrote in python a simple text that sends domain_reload command over s
xmlrpc interface to sr:

---------------------------------------------------------------
import xmlrpclib

XMLRPC_PROTOCOL = 'http'
XMLRPC_SERVER   = '127.0.0.1'
XMLRPC_PORT	= 6060

server_path = XMLRPC_PROTOCOL + '://' +  XMLRPC_SERVER + \
		':' +  str(XMLRPC_PORT)

c = xmlrpclib.ServerProxy(server_path)

erg = c.domain_reload()
----------------------------------------------------------------

when i execute the program, ngrep immediately prints what one would
expect:

T 2009/07/04 17:20:02.455028 127.0.0.1:33418 -> 127.0.0.1:6060 [AP]
  POST /RPC2 HTTP/1.0..Host: 127.0.0.1:6060..User-Agent: xmlrpclib.py/1.0.1 (
  by www.pythonware.com)..Content-Type: text/xml..Content-Length: 107....    
##
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:

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?

-- juha



More information about the sr-dev mailing list