[ZODB-Dev] Re: finding POSKeyErrors

Gerry Kirk gerry at faithonline.com
Wed Nov 10 09:04:21 EST 2004


Tim Peters wrote:
> [Gerry Kirk]
> 
  > I think I've pointed you at this before:
> 
>     http://zope.org/Wikis/ZODB/FileStorageBackup
> 
> As it says, packing is not an error recovery procedure.  If you're having
> problems, packing is unlikely to help, and may hurt.
> 
Yes, which is why I have refrained from packing. I don't want to make 
the situation any worse than it is.

> It's the purpose of fsrefs to find references to missing objects.  If fsrefs
> has no complaints, then you cannot get a POSKeyError from accessing the
> current revision of any non-versioned object in the database.  If you're
> accessing versioned objects, then (a) that's unusual (few people use
> versions); and, (b) no tool exists to check versioned objects.
> 

These objects are based on CMF and Archetypes, content objects. 
fsrefs.py doesn't find problems, but I tried once updating all objects 
of a certain type, and I got POSKeyErrors trying to access some of them. 
That's why I'd like to go through the whole system, in case there are 
others like that.

Then this morning I came into the office to find a lovely POSKeyError on 
the home page of the site:

2004-11-10T08:37:43 ERROR(200) ZODB Couldn't load state for 00000000001cb29b
Traceback (most recent call last):
   File "/usr/local/Zope/Zope2.7.2/lib/python/ZODB/Connection.py", line 
559, in setstate
     p, serial = self._storage.load(oid, self._version)
   File "/usr/local/Zope/Zope2.7.2/lib/python/ZEO/ClientStorage.py", 
line 749, in load
     p, s, v, pv, sv = self._server.zeoLoad(oid)
   File "/usr/local/Zope/Zope2.7.2/lib/python/ZEO/ServerStub.py", line 
82, in zeoLoad
     return self.rpc.call('zeoLoad', oid)
   File "/usr/local/Zope/Zope2.7.2/lib/python/ZEO/zrpc/connection.py", 
line 372, in call
     raise inst # error raised by server
POSKeyError: 00000000001cb29b

I fixed the problem by removing the two zeo client cache files.

- Gerry


More information about the ZODB-Dev mailing list