[ZODB-Dev] Version Problems

Chris Kratz chris.kratz@vistashare.com
Thu, 25 Apr 2002 17:51:25 -0400


Pardon me if this is the wrong forum to ask this question.  This got kind of 
long, but please bear with me.

We have been using zope for over a year now with multiple developers.  Since 
we have multiple developers, we rely on versions to keep things straight.  
Unfortunately, for much of that time, we have had problems with versions.  In 
short, when we save or discard a version, some objects are not commited or 
rolled back.  We have found that if we go and resave those objects (python 
scripts require a small change) and then recommit, the commit will "take".  
There doesn't seem to be a rhyme or reason for which ones get commited and 
which ones don't.  Some from a particular folder may get committed while 
others do not.

Within the last two months, we moved to Zope 2.5.0 and python 2.1.2 in the 
hopes that this issue was fixed.  Unfortunately, we continue to have problems 
and I ran into some objects that had been created in a version that had long 
since been cut in and deleted, but they remained locked.  I fixed it by 
recreating the version, entering it, saving the objects and saving the 
version.   This committed the objects.

**Observations**
1. The problem is intermittent, but generally seems to happen in versions that 
exist over a period of several days.  We do have versions that commit just 
fine.

2. We have a nightly backup procedure that restarts zope on a nightly basis 
during the backup.  The stop part of the init script does this:

   kill `cat /usr/local/zope/var/Z2.pid`

and the start does this :

   /usr/local/zope/start
   

3. When there are orphaned objects after a version is committed, going to the 
versions area in the control panel shows nothing for that version.  The 
version itself says there are no unsaved objects to commit.

4. We were doing autopacking nightly but I found that was actually causing 
corruption of the database (reproduceable!!!).  When I did the pack from a 
browser it worked.  When I did it from a shell script, it caused corruption.  
Very strange but it wasn't critical to us, so I stopped packing nightly.  Now 
we only pack manually.  I initially thought this was what was causing the 
problem and we haven't packed for a number of months now, but the problem 
keeps showing up.

5. No other errors show up.  The system has worked as expected since we nailed 
down the packing corruption issue.

6. We have the problem with standard objects (python scripts, dtml documents 
and methods where 99% of our code is in).

7.  We have noticed the behavior on both Mandrake as well as RedHat linux 
under several versions of both distribution on x86.

**Questions**

Is this a known issue?  If not, what can I do to try and track the problem 
further?  Is there some procedure we can change to make versions work better?  
Is restarting zope nightly detrimental to versions?  Is there any chance that 
part of a version is kept in memory and stopping and starting zope causes a 
loss of the links to the changed objects?  

Thanks for your time.

-Chris

**System Info**

Zope Version: (Zope 2.5.0 (binary release, python 2.1, linux2-x86), python 
2.1.2, linux2)
Python Version: 2.1.2 (#1, Jan 25 2002, 13:17:56) [GCC 2.7.2.3]
System Platform: linux2

**Installed Products (from control panel)**

CookieCrumbler (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))
NewsItem
OFSP (Installed product OFSP (OFSP-1-0-0))
PageTemplates (Installed product PageTemplates (PageTemplates-1-4-0))
PluginIndexes (Installed product PluginIndexes)
PythonScripts (Installed product PythonScripts (PythonScripts-2-0-0))
Sessions (Installed product Sessions)
SiteAccess (Installed product SiteAccess (SiteAccess-2-0-0))
Squishdot (Installed product Squishdot (Squishdot-1-4-0))
StandardCacheManagers (Installed product StandardCacheManagers 
(StandardCacheManagers-1-1-0))
TemporaryFolder (Installed product TemporaryFolder)
TinyTablePlus (Installed product TinyTablePlus (TinyTablePlus-0-9))
Transience (Installed product Transience)
UpdateSupport (Installed product UpdateSupport (UpdateSupport-1_0_0))
ZCatalog (Installed product ZCatalog (ZCatalog-2-2-0))
ZGadflyDA (Installed product ZGadflyDA)
ZPsycopgDA (Installed product ZPsycopgDA)
ZSQLMethods (Installed product ZSQLMethods)
ZSyncer (Installed product ZSyncer)
ZWiki (Installed product ZWiki (ZWiki-0-9-8))
ZopeTutorial (Installed product ZopeTutorial (Zope Tutorial 1.0))
iTrack (Installed product iTrack (0.2.0))

-- 
Chris Kratz
Systems Analyst/Programmer
VistaShare LLC
www.vistashare.com