[ZODB-Dev] Re: POSKeyError in zodb-3.6.0
Chris Bainbridge
chris.bainbridge at gmail.com
Mon Nov 6 14:13:05 EST 2006
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.
More information about the ZODB-Dev
mailing list