2

I have a very simple python script that connects to a MoinMoin wiki via XMLRPC (v2) and pulls some data. It all begins with a simple authentication:

self._server = xmlrpclib.ServerProxy(self.url)
self.token = self._server.getAuthToken(self.user, self.password)

The same script works on some machines, and fails on others. Below are the error dumps, and at the bottom the Apache logs.

It works on this machine:

Python 2.7.3 (default, Feb 27 2014, 19:58:35) 
[GCC 4.6.3] on linux2

But it fails on this machine (notice same python version):

Python 2.7.3 (default, Sep 26 2013, 20:08:41) 
[GCC 4.6.3] on linux2
[...]
    self.token = self._server.getAuthToken(self.user, self.password)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1224, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1578, in __request
    verbose=self.__verbose
  File "/usr/lib/python2.7/xmlrpclib.py", line 1264, in request
    return self.single_request(host, handler, request_body, verbose)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1297, in single_request
    return self.parse_response(response)
  File "/usr/lib/python2.7/xmlrpclib.py", line 1473, in parse_response
    return u.close()
  File "/usr/lib/python2.7/xmlrpclib.py", line 791, in close
    raise ResponseError()
xmlrpclib.ResponseError: ResponseError()

It also fails on this machine (same error, different line numbers obviously):

Python 2.6.5 (r265:79063, Sep 26 2013, 18:48:04) 
[GCC 4.4.3] on linux2
[...]
   self.token = self._server.getAuthToken(self.user, self.password)
  File "/usr/lib/python2.6/xmlrpclib.py", line 1199, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python2.6/xmlrpclib.py", line 1489, in __request
    verbose=self.__verbose
  File "/usr/lib/python2.6/xmlrpclib.py", line 1253, in request
    return self._parse_response(h.getfile(), sock)
  File "/usr/lib/python2.6/xmlrpclib.py", line 1392, in _parse_response
    return u.close()
  File "/usr/lib/python2.6/xmlrpclib.py", line 836, in close
    raise ResponseError()
xmlrpclib.ResponseError: ResponseError()

MoinMoin server details:

Python Version
    2.7.3 (default, Feb 27 2014, 20:09:21) [GCC 4.6.3]
MoinMoin Version
    Release 1.9.7 [Revision release]

Here's the apache log (captured later, so it might not be related; I haven't tried a cross-correlation with the time):

[Wed Apr 02 00:20:15 2014] [error] 2014-04-02 00:20:15,212 INFO MoinMoin.config.multiconfig:127 using wiki config: /opt/moin/share/moin/wikiconfig.pyc
[Wed Apr 02 00:23:35 2014] [info] mod_wsgi (pid=4909): Maximum requests reached 'moin'.
[Wed Apr 02 00:23:35 2014] [info] mod_wsgi (pid=4909): Shutdown requested 'moin'.
[Wed Apr 02 00:23:35 2014] [info] mod_wsgi (pid=4909): Stopping process 'moin'.
[Wed Apr 02 00:23:35 2014] [info] mod_wsgi (pid=4909): Destroying interpreters.
[Wed Apr 02 00:23:35 2014] [info] mod_wsgi (pid=4909): Destroy interpreter 'foo.bar.baz|'.
[Wed Apr 02 00:23:35 2014] [info] mod_wsgi (pid=4909): Cleanup interpreter ''.
[Wed Apr 02 00:23:35 2014] [info] mod_wsgi (pid=4909): Terminating Python.
[Wed Apr 02 00:23:35 2014] [info] mod_wsgi (pid=4909): Python has shutdown.
[Wed Apr 02 00:23:35 2014] [info] mod_wsgi (pid=10496): Attach interpreter ''.

Any clue? I'm really flabbergasted.

Paul Sweatte
  • 24,148
  • 7
  • 127
  • 265
lorenzog
  • 3,483
  • 4
  • 29
  • 50
  • A ResponseError would arise when the URL you targeted for the request on the server didn't actually respond with a valid XML-RPC response payload but something else. Try using wireshark or snoop to see what the response actually contained. It is possibly some normal HTML page response. – Graham Dumpleton Apr 02 '14 at 11:30

1 Answers1

0

Use a keyword search in the server configuration files to troubleshoot by looking for access control restrictions based on IP or hostnames:

  • Apache: Allow from or Deny from

  • nginx: allow or deny

  • Lighttpd: $HTTP["host"] or $HTTP["remoteip"]

References

Paul Sweatte
  • 24,148
  • 7
  • 127
  • 265
  • It has been so long that I forgot what the problem was or how (if!) I even solved it. Thanks for the answer anyway. – lorenzog Nov 25 '16 at 22:43