[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