[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