The bug I'm getting on the client side is two or more clients
simultaneously reporting:

Traceback (most recent call last):
 File "/home/chrb/test_bad.py", line 45, in ?
   i = g.index(random.choice(g))
 File "/usr/lib/python2.4/UserList.py", line 78, in index
   def index(self, item, *args): return self.data.index(item, *args)
 File "/usr/lib/python2.4/UserList.py", line 17, in __eq__
   def __eq__(self, other): return self.data == self.__cast(other)
 File "/usr/lib/python2.4/site-packages/ZODB/Connection.py", line
732, in setstate
   self._setstate(obj)
 File "/usr/lib/python2.4/site-packages/ZODB/Connection.py", line
768, in _setstate
   p, serial = self._storage.load(obj._p_oid, self._version)
 File "/usr/lib/python2.4/site-packages/ZEO/ClientStorage.py", line
746, in load
   return self.loadEx(oid, version)[:2]
 File "/usr/lib/python2.4/site-packages/ZEO/ClientStorage.py", line
769, in loadEx
   data, tid, ver = self._server.loadEx(oid, version)
 File "/usr/lib/python2.4/site-packages/ZEO/ServerStub.py", line 192, in loadEx
   return self.rpc.call("loadEx", oid, version)
 File "/usr/lib/python2.4/site-packages/ZEO/zrpc/connection.py", line
536, in call
   raise inst # error raised by server
ZODB.POSException.POSKeyError: 0x01f5

This seems to be triggered by the call to PersistentList.index. If I
change the random select line to:

 i = random.randint(0, len(g)-1)

then I no longer see this error.

Presumably this just means that the access pattern for index() is
sufficient to trigger this bug, rather than index itself being the
problem.
_______________________________________________
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev

Reply via email to