[Zope] Is data.fs corrupted?

Chris McDonough chrism@digicool.com
Wed, 8 Nov 2000 15:44:40 -0500


I can see your point, but it's not quite correct to call this "ZODB
corruption".  This was (and is) related to a Zope programming error.
Perhaps ZDiscussion.zexp does some funky things in instance space on an
import that it shouldn't do.  I imagine if we unraveled this far enough that
we could pick the error out (not going to try :-).

I'd argue that the ZODB is a very independent component of Zope, and it
shouldn't be blamed for this.  Devil's advocate question:  if your Perl
application failed because it couldn't find a record in an Oracle database,
would you immediately chalk this up to database corruption and Oracle?

We do clearly need to work on Zope tools to make it easier to find and clear
"orphaned" instances in the ZODB.  We should also try to weed out the
programming errors which cause interdependencies of seemingly unrelated
components of the same Zope instance that cause failures like this.
Transactions are only tangentially related to this issue (I'm not sure how
the "Added globals" transaction 'referred to' the "Installed product
DemoPortal" transaction in your example, BTW).

BTW, I'm being sort of pedantic because when people hear "ZODB" and
"corruption" in the same sentence, they tend to get scared and think of ZODB
as "unstable" which is really not the case... most purported "ZODB
corruption" issues are caused by programming errors in Products.  This has
been the case for at least every one but one (the >2G pointer bug) that I've
personally seen.

----- Original Message -----
From: "Bill Welch" <bill@carbonecho.com>
To: "Chris McDonough" <chrism@digicool.com>
Cc: <zope@zope.org>
Sent: Wednesday, November 08, 2000 2:59 PM
Subject: Re: [Zope] Is data.fs corrupted?


> In my case, I couldn't import DemoPortal.zexp or Wizard.zexp from PTK
> because oid 1377 was already in use. The pickle dump that followed
> contained references to ZDiscussions, which I had deleted some time
> before.
>
> After deleting the offending products and their directories, restarting
> zope, and packing, I ran tranalyzer -r on my problem Data.fs. I found that
> the problem oid was in this transaction:
>
> "/Control_Panel/Products/manage_importObject
>
> import into /var/lib/zope/var/Data.fs from
> /var/lib/zope/import/ZDiscussions.zexp"
>
> referred to by this transaction:
>
> "Installed product DemoPortal"
>
> in turn, referred to by this tranaction:
>
> "Added Globals"
>
> I think ZODB corruption when I see a record in one product refer to
> a record in an independent product and when the transaction of a deleted
> product doesn't go away.
>
> On Wed, 8 Nov 2000, Chris McDonough wrote:
>
> > > I think it is ZODB corruption.
> >
> > This is very unlikely.  What makes you think this?
>
>
>