Package: python2.2
Version: 2.2.1-4.7
Severity: important

Several of our applications use the XMLRPC for interapplication
communication.  After upgrading to python2.2 (2.2.1-4.7), our
applications stopped working.  XMLRPC calls receive this type of error:

[EMAIL PROTECTED]:[~/python2.2-bug] python2.2 XMLRPCClient.py
Traceback (most recent call last):
  File "XMLRPCClient.py", line 9, in ?
    print client.TestAPI("boo")
  File "/usr/lib/python2.2/xmlrpclib.py", line 821, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python2.2/xmlrpclib.py", line 975, in __request
    verbose=self.__verbose
  File "/usr/lib/python2.2/xmlrpclib.py", line 853, in request
    return self.parse_response(h.getfile())
  File "/usr/lib/python2.2/xmlrpclib.py", line 896, in parse_response
    return u.close()
  File "/usr/lib/python2.2/xmlrpclib.py", line 571, in close
    raise apply(Fault, (), self._stack[0])
xmlrpclib.Fault: <Fault 1: 'exceptions.Exception:method "TestAPI" is not
supported'>

Running these applications on 2.2.1-4.6, they work fine.

I've looked at the published patch from python, and I'm not sure why
their patch would cause this problem.  So perhaps it is an issue in the
debian patch, or perhaps, the python patch is broken too.  Or.. perhaps
I am a moron, and I'm just blind as to why this isn't working. It was
certainly a surprise to us when all of our internal systems stopped
working, so I suspect it might surprise some other folks too.  I have
even tried setting allow_dotted_names=True to bypass this problem
(which... supposedly should turn off the security patch), but it's still
broken.

I have attached some sample cases to make this easy for you to
reproduce:

If you run this on a 2.2.1-4.6
python2.2 XMLRPCServer.py 1 &
python2.2 XMLRPCClient.py

it will work fine and dandy

if you run this on a 2.2.1-4.7:
python2.2 XMLRPCServer.py 1 &
python2.2 XMLRPCClient.py

you'll get:
Traceback (most recent call last):
  File "XMLRPCClient.py", line 9, in ?
    print client.TestAPI("boo")
  File "/usr/lib/python2.2/xmlrpclib.py", line 821, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib/python2.2/xmlrpclib.py", line 975, in __request
    verbose=self.__verbose
  File "/usr/lib/python2.2/xmlrpclib.py", line 853, in request
    return self.parse_response(h.getfile())
  File "/usr/lib/python2.2/xmlrpclib.py", line 896, in parse_response
    return u.close()
  File "/usr/lib/python2.2/xmlrpclib.py", line 571, in close
    raise apply(Fault, (), self._stack[0])
xmlrpclib.Fault: <Fault 1: 'exceptions.Exception:method "TestAPI" is not
supported'>

You can change the "1" to a "0" if you want to try the 
allow_dotted_names=True flag.. which doesn't appear to do anything to
help.

If you modify the SampleAPI class and add:
    def _dispatch(self, method, params):
        return apply(getattr(self,method), params)

Everything will work fine... (which is what I did to bootstrap our
systems back into operation).. but obviously this is not supposed to be
necessary.


-- System Information
Debian Release: 3.0
Architecture: i386
Kernel: Linux cthulhu 2.4.25-athenium-686-smp #3 SMP Fri Mar 19 18:29:28
EST 2004 i686
Locale: LANG=C, LC_CTYPE=C

Versions of packages python2.2 depends on:
ii  libc6                  2.2.5-11.8        GNU C Library: Shared
libraries an
ii  libdb3                 3.2.9-16          Berkeley v3 Database
Libraries [ru
ii  libncurses5            5.2.20020112a-7   Shared libraries for
terminal hand
ii  libreadline4           4.2a-5            GNU readline and history
libraries
ii  libssl0.9.6            0.9.6c-2.woody.7  SSL shared libraries
ii  zlib1g                 1:1.1.4-1.0woody0 compression library -
runtime




-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to