[ZODB-Dev] client cache bugs when a client switches from one zeo server to another

Chris Withers chris at simplistix.co.uk
Tue Nov 24 09:02:16 EST 2009


Hi All,

So, I got the following errors when using a setup I'll describe shortly:

o Module Products.ZCatalog.CatalogBrains, line 86, in getObject
o Module OFS.Traversable, line 250, in restrictedTraverse
o Module OFS.Traversable, line 226, in unrestrictedTraverse
   __traceback_info__: ([], 'tvi-101108-rb3')
o Module OFS.ObjectManager, line 728, in __getitem__
KeyError: 'An object id'

This catalog is maintained in sync with the content as changes to one 
are always committed in the same transaction as changes to the other.

o Module Products.BTreeFolder2.BTreeFolder2, line 293, in 
getBatchObjectListing
IndexError: 124

This looks like an impossible error that occurs when a BTreeFolder's 
object count doesn't match the length of its objectIds().

These errors would be bizarre and disturbing were it not that they went 
away as soon as I restarted the Zope instance. That suggests client 
cache corruption to me as the client in question has no persistent cache.

So anyway, the setup is one Zope 2.9.8 client connected to two zeoraid 
1.0b7 zeo servers. The client has been switching between the two zeoraid 
servers while I've been testing zeoraid by bringing it up and down.

So, I'm left wondering:

- have there been any client cache bugs fixed with Zope 2.9.8 that would 
cause this kind of behaviour when a client has multiple zeo servers and 
switches between the two due to failure of one of them?

- (mainly at Christian) can you think of anything in zeoraid that might 
cause this behaviour?

cheers,

Chris

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


More information about the ZODB-Dev mailing list