[ZODB-Dev] Exception and disconnect with a ZODB 3.8 (Zope 2.11.6) client on a ZODB 3.9.6 server

Bastian Blank bastian at waldi.eu.org
Fri Dec 3 09:58:53 EST 2010


I upgraded my ZEO server to 3.9.6 in preperation of some Zope 2.12 tests
and found several disconnects in the log. They all looks like this:

2010-12-03T10:47:24 ERROR ZEO.zrpc (2515) can't decode message: '(K\x11K\x01U\tserialnos(]((U\x08\x00\x00\x00\x00\x00X\x...'
2010-12-03T10:47:24 ERROR ZEO.zrpc.Connection(C) ( Error caught in asyncore
Traceback (most recent call last):
  File "/usr/lib/python2.4/asyncore.py", line 69, in read
  File "/usr/lib/python2.4/asyncore.py", line 391, in handle_read_event
  File "/srv/zope/software/Zope/Zope-2.11.6/lib/python/ZEO/zrpc/smac.py", line 243, in handle_read
  File "/srv/zope/software/Zope/Zope-2.11.6/lib/python/ZEO/zrpc/connection.py", line 535, in message_input
    msgid, flags, name, args = self.marshal.decode(message)
  File "/srv/zope/software/Zope/Zope-2.11.6/lib/python/ZEO/zrpc/marshal.py", line 49, in decode
    return unpickler.load() # msgid, flags, name, args
  File "/srv/zope/software/Zope/Zope-2.11.6/lib/python/ZODB/POSException.py", line 25, in _recon
    err = class_.__new__(class_)
AttributeError: ("class ConflictError has no attribute '__new__'", <function _recon at 0x1fd6b90>, (<class ZODB.POSException.ConflictError at 0x20991d0>, {'class_name': 'Products.Transience.Transience.Increaser', 'serials': ('\x03\x8a\xaa\xabP%\x12\x00', '\x03\x8a\xaa\xaa\xbe\xc0\x8df'), 'message': 'database conflict error', 'oid': '\x00\x00\x00\x00\x00\x15%2', 'args': ()}))
2010-12-03T10:47:24 INFO ZEO.ClientStorage (2515) Disconnected from storage: "('zope.example.org', 2000)"

And no, ZODB 3.9 does not work with Python 2.4. This is an not announced
API breakage between the server and client.


Men will always be men -- no matter where they are.
		-- Harry Mudd, "Mudd's Women", stardate 1329.8

More information about the ZODB-Dev mailing list