[ZCM] [ZC] 1878/ 3 Comment "broken ZEO cache not caught"
Collector: Zope Bugs, Features,
and Patches ...
zope-coders-admin at zope.org
Thu Sep 8 09:31:32 EDT 2005
Issue #1878 Update (Comment) "broken ZEO cache not caught"
Status Rejected, Database/bug medium
To followup, visit:
http://www.zope.org/Collectors/Zope/1878
==============================================================
= Comment - Entry #3 by alzhimer on Sep 8, 2005 9:31 am
just as an info: that is not what happens here. we've seen these corruption problems without having touched neither the ZEO server nor the cache files (no restoring of a Data.fs either). it _might_ have been caused by an blank except in an long running data import job that runs every night (the blank except has gone now, and so far no corruption was seen for some days).
beside that, I feel it's a good thing if software helps you out on human errors if possible :-)
________________________________________
= Reject - Entry #2 by efge on Sep 8, 2005 9:09 am
Status: Pending => Rejected
If you have a persistent ZEO cache that gets corrupted, it a human error problem (typically a Data.fs restored from backup without clearing the caches).
It's not Zope's job to fix human errors.
________________________________________
= 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