[Zope-dev] Coroner's toolkit for zope, or how to figure out what went wrong.

Toby Dickenson tdickenson@geminidataloggers.com
Tue, 13 Aug 2002 00:05:53 +0100


On Monday 12 Aug 2002 11:31 pm, Romain Slootmaekers wrote:

> But we found something else:
>
> I included a script below that produces a stripped down analogy
> of our problem. (no zope needed, just ZODB, and you might wanna modify
> the first line to get it working)

Ive read your sample, but not tried it.

> The question is: is intended ZODB behaviour or not, and is there a work
> around ?

Yes, this is the intended behaviour.

While excecuting the conflict resolution logic, your conflicting objects =
exist=20
in a void - completely seperate from all other ZODB objects. Any attribut=
es=20
which you might expect to be other persistent objects are substituted for=
=20
attribute-less placeholders. This is the 'PersistentReference' object in =
your=20
traceback.

Note that these attributes are only a 'PersistentReference' while process=
ing=20
the conflict resolution logic. If you access this attribute at any other =
time=20
you get your normal class, with all its normal attributes.