[ZCM] [ZC] 1878/ 1 Request "broken ZEO cache not caught"

Collector: Zope Bugs, Features, and Patches ... zope-coders-admin at zope.org
Thu Aug 25 11:10:47 EDT 2005


Issue #1878 Update (Request) "broken ZEO cache not caught"
 Status Pending, Database/bug medium
To followup, visit:
  http://www.zope.org/Collectors/Zope/1878

==============================================================
= Request - Entry #1 by alzhimer on Aug 25, 2005 11:10 am

no idea why it happens, but once in a while we see that a zeo client has problems with its cache due to corrupted records. traceback looks like this:

2005-08-25T00:34:15 ERROR Zope.ZODBMountPoint Failed to mount database. exceptions.ValueError (corrupted record, oid)
Traceback (most recent call last):
  File "/mnt/zope/2.8/ZSoftwareHome/lib/python/Products/ZODBMountPoint/Mount.py", line 94, in _getOrOpenObject
  File "/mnt/zope/2.8/ZSoftwareHome/lib/python/Products/ZODBMountPoint/Mount.py", line 78, in _getMountedConnection
  File "/mnt/zope/ZSoftwareHome/lib/python/Products/ZODBMountPoint/MountedObject.py", line 142, in _getDB
    return getConfiguration().getDatabase(self._path)
  File "/mnt/zope/2.8/ZSoftwareHome/lib/python/DBTab/DBTab.py", line 96, in getDatabase
  File "/mnt/zope/2.8/ZSoftwareHome/lib/python/DBTab/DBTab.py", line 113, in _createDatabase
  File "/mnt/zope/2.8/ZSoftwareHome/lib/python/Zope2/Startup/datatypes.py", line 163, in open
    DB = self.createDB()
  File "/mnt/zope/2.8/ZSoftwareHome/lib/python/Zope2/Startup/datatypes.py", line 160, in createDB
    return ZODBDatabase.open(self)
  File "/mnt/zope/ZSoftwareHome/lib/python/ZODB/config.py", line 97, in open
    storage = section.storage.open()
  File "/mnt/zope/ZSoftwareHome/lib/python/ZODB/config.py", line 156, in open
    realm=self.config.realm)
  File "/mnt/zope/ZSoftwareHome/lib/python/ZEO/ClientStorage.py", line 314, in __init__
    self._cache.open()
  File "/mnt/zope/ZSoftwareHome/lib/python/ZEO/cache.py", line 112, in open
    self.fc.scan(self.install)
  File "/mnt/zope/ZSoftwareHome/lib/python/ZEO/cache.py", line 835, in scan
    install(self.f, ent)
  File "/mnt/zope/ZSoftwareHome/lib/python/ZEO/cache.py", line 121, in install
    o = Object.fromFile(f, ent.key, skip_data=True)
  File "/mnt/zope/ZSoftwareHome/lib/python/ZEO/cache.py", line 630, in fromFile
    raise ValueError("corrupted record, oid")
ValueError: corrupted record, oid

to "correct" such a situation, we simply delete the cache file in question (no need to stop the zope server); ZEO.cache recognizes this and creates a new cache file. now, wouldn't it be nice that would happen automatically? :-)
==============================================================



More information about the Zope-Collector-Monitor mailing list