[Zope-dev] corrupted data.fs

Chris Kratz chris.kratz@vistashare.com
Wed, 5 Dec 2001 18:17:27 -0500


Hello all,

My apologies if this is not appropriate on this list and my apologies for 
this "book".  But, we have been having more and more problems with Zope and 
it is getting quite frustrating.  I thought since I had posted on the zope 
list and no one had any suggestions that I would try this list next.

The behavior we are seeing is as follows.  We are using versions heavily.  
There are two of us primary developers, soon to be three working heavily 
within the same data.fs.  We use versions, often running several at the same 
time.  When the code is ready, we save the version incorporating the changes 
to the live site.

Ever since we upgraded to Zope 2.4.1, saving the version rarely actually does 
that.  It will save some objects, but usually only a few.  We have to then go 
to each object and save it again (sometimes making changes) and continue 
saving the version until we get all the locked objects unlocked and 
committed.  This is very annoying, but not a show stopper.  What is starting 
to scare me is that I wonder if this problem with the version commits is 
somehow causing the corruption of the database.

Now, I say all this because it may or may not be related to the other 
problems we continue to have.  We periodically, get folders that are no 
longer visible within the ZMI and produce a keyerror in filestorage.py 
(traceback at end of msg).  But, the same folder is still happily being 
served externally (ie it generates the web pages based within that folder 
without error to our customers).  This tells me that it is still in the ZODB, 
it is just unreachable via the ZODB.  Since we cannot access it from 
within zope any longer, we have to load the data.fs from backup and restore 
the offending folder losing any work done since the previous night.  It never 
seems to effect any other parts of the website and it has happened in several 
different areas.  This is becoming more and more of a showstopper especially 
when we lose code.

1. I have packed the database.
2. I have run fsrecover.py over the data.fs. - Nothing to recover.  So, if we 
aren't corrupted, why can we no longer work with that folder?
3. I have exported and imported the offending folder without effect (XML and 
regular).
4. We were packing the zope database nightly via a cron job to control ZODB 
bloat.  I have turned that off for now on the theory that somehow mixing 
overnight packs with versions is causing problems.

Help!!! This continues to happen and it is really scary when your database 
continues to get corrupted underneath you on a live site when you are in 
heavy development.  Can anyone give any ideas on how to track down this 
problem?  Could it be with the versioning code?  Is there a better way to 
work with a production site and still get the benefits of the versioning?  Is 
versioning just dangerous and shouldn't be used?  Pardon my tone, but I am a 
little frustrated.

I will say that the last time this happened, thankfully, that particular 
folder was being worked on in a version and even though the folder was 
inaccessible outside of the version, when working within the version, it was 
still there.  So, when that version was cut in, we were again able to work 
with that folder.  This time however, the folder in question wasn't begin 
worked on in a version.

Thank you for your time,

Sincerely

-Chris

-------------

**Traceback**


Error Type: KeyError
Error Value: ?f

Traceback
Traceback (innermost last): File 
/usr/local/zope2.4/Zope-2.4.0-linux2-x86/lib/python/ZPublisher/Publish.py, 
line 171, in publish File 
/usr/local/zope2.4/Zope-2.4.0-linux2-x86/lib/python/ZPublisher/mapply.py, 
line 160, in mapply (Object: manage_main) File 
/usr/local/zope2.4/Zope-2.4.0-linux2-x86/lib/python/ZPublisher/Publish.py, 
line 112, in call_object (Object: manage_main) File 
/usr/local/zope2.4/Zope-2.4.0-linux2-x86/lib/python/Shared/DC/Scripts/Bindings.py, 
line 324, in __call__ (Object: manage_main) File 
/usr/local/zope2.4/Zope-2.4.0-linux2-x86/lib/python/Shared/DC/Scripts/Bindings.py, 
line 354, in _bindAndExec (Object: manage_main) File 
/usr/local/zope/lib/python/App/special_dtml.py, line 244, in _exec (Object: 
manage_main) File /usr/local/zope/lib/python/DocumentTemplate/DT_In.py, line 
711, in renderwob (Object: objectItems) File 
/usr/local/zope/lib/python/DocumentTemplate/DT_In.py, line 839, in 
sort_sequence (Object: objectItems) File 
/usr/local/zope2.4/Zope-2.4.0-linux2-x86/lib/python/ZODB/Connection.py, line 
519, in setstate File lib/python/ZODB/FileStorage.py, line 588, in load 
(Object: /usr/local/zope/var/Data.fs) File lib/python/ZODB/FileStorage.py, 
line 564, in _load (Object: /usr/local/zope/var/Data.fs) KeyError: ?f


----------------
**Instalation Info**

Platform: RH 7.2
Zope Version: (Zope 2.4.1 (binary release, python 2.1, linux2-x86), python 
2.1.1, linux2)
Python Version: 2.1.1 (#1, Aug 8 2001, 11:57:42) [GCC 2.96 20000731 (Red Hat 
Linux 7.1 2.96-81)]
System Platform: linux2

Products installed:

eCrumbler (Installed product CookieCrumbler (CookieCrumbler-0.3))
ExternalMethod (Installed product ExternalMethod (External Method-1-0-0))
MIMETools (Installed product MIMETools)
MailHost (Installed product MailHost (MailHost-1-2-0))
OFSP (Installed product OFSP (OFSP-1-0-0))
PlugIns (Installed product PlugIns (PlugIns-0-4-3p1))
PluginIndexes (Installed product PluginIndexes)
PythonScripts (Installed product PythonScripts (PythonScripts-2-0-0))
Renderable (Installed product Renderable)
SiteAccess (Installed product SiteAccess (SiteAccess-2-0-0))
Squishdot (Installed product Squishdot (Squishdot-1-2-1))
StandardCacheManagers (Installed product StandardCacheManagers 
(StandardCacheManagers-1-1-0))
ThreadSafeCounter (Installed product ThreadSafeCounter (0.0.3))
TinyTablePlus (Installed product TinyTablePlus (TinyTablePlus-0-9))
UpdateSupport (Installed product UpdateSupport (UpdateSupport-1_0_0))
WarpFramework (Installed product WarpFramework (2001-05-02-1222))
ZCatalog (Installed product ZCatalog (ZCatalog-2-2-0))
ZGDChart (Installed product ZGDChart (ZGDChart 0.5.1))
ZGadflyDA (Installed product ZGadflyDA)
ZPatterns (Installed product ZPatterns (ZPatterns-0-3-0))
ZPoPyDA (Installed product ZPoPyDA)
ZPsycopgDA (Installed product ZPsycopgDA)
ZSQLMethods (Installed product ZSQLMethods)
ZSyncer (Installed product ZSyncer)
ZWiki (Installed product ZWiki (ZWiki-0-9-6))
ZopeTutorial (Installed product ZopeTutorial (Zope Tutorial 1.0))
iTrack (Installed product iTrack (0.2.0))

-- 
Systems Analyst/Programmer
VistaShare LLC
chris.kratz-no-spam-please-vistashare.com
(replace -no-spam-please- by @)
www.vistashare.com