[ZODB-Dev] ZEO client cache weirdities: Bug or Caution?

Chris Withers chris at simplistix.co.uk
Mon Aug 2 14:17:14 EDT 2004


Hi there,

Just been to hell and back taking a site from Zope 2.6.1 to Zope 2.7.2

Kinda concerned that whatever is supposed to invalidate .zec's isn't 
doing so properly.

I have a batch content loading and indexing job, this was falling over 
trying to delete an object object and unindex it.

The error was:

   File "C:\Zope\2.7.2\lib\python\Products\ZCatalog\ZCatalog.py", line 
558, in uncatalog_object
     self._catalog.uncatalogObject(uid)
   File "C:\Zope\2.7.2\lib\python\Products\ZCatalog\Catalog.py", line 
412, in uncatalogObject
     del data[rid]
KeyError: -1363356744

Note that UID...

Now, I fired up a python prompt ZEO client on my desktop.
The first thing I noticed was that the Catalog only appeared to have a 
few of the indexes it should have had. On a whim, I deleted all the .zec 
files I could find and restarted... everything fine :-)

...except, the UID for the object is question was now -1363356714.

Bwah?!

After much checking of BTrees (http://zope.org/Collectors/Zope/1450) and 
gnashing of teeth, it finally dawned on me to blow away the .zec's on 
the troublesome client.

Bingo, the delete worked fine.

Now, this has me MORE than a little worried. What if something had got 
committed with that rubbish. (Plenty has, but I haven't seen any ill 
effects...)

Especially as I often connect from the client on my desktop to my test 
storage server, and then flip it onto the live storage server (which was 
why it only showed a few indexes...)

What's the deal here? Should I just use temporary ZEO client caches and 
run out of temp disk space every so often? Is this a bug in ZEO that 
should be fixed? Do I only need to blow away .zec's when I change the 
storage server I'm connecting to? What about versions of Zope?

Waaaaaaaaaaaaaaagh....

Chris

-- 
Simplistix - Content Management, Zope & Python Consulting
            - http://www.simplistix.co.uk


More information about the ZODB-Dev mailing list