I've encountered the issue described here:

http://mail.zope.org/pipermail/zope/2005-August/161120.html

on a recently upgraded Zope using LocalFS.  I have tracked
down the issue to the fact that the object that LocalFS
"hands" to ZODB is a WrapperObject, and this object does
not have an oid.  This raises an AssertionError during
the _commit method of ZODB.Connection.

I have traced the code a little bit and I see that this
block of code will be avoided for these objects if the
objects do not appear in self._registered_objects, which
I can achieve by making sure that the object has no
_p_jar attribute.

If I comment out the line in the LocalFS object where
the wrapper object's _p_jar is set to the parent object's
_p_jar, everything works fine, with no (apparent)
problems. [ I tried also setting obj._p_oid = self._p_oid,
but then Zope has pickling problems trying to pickle
instances of the wrapper class ].

The problem I have with my "solution" is that I have
no clue what _p_jar is.

What is _p_jar used for within the Zope model?

What are the implications of having an object with
self._p_jar=None?

What are the implications of a transient object (not
stored in the ZODB but on the local filesystem), with
self._p_jar=None?

Thanks in advance for any information,
John Ziniti
_______________________________________________
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/listinfo/zope
**   No cross posts or HTML encoding!  **
(Related lists - 
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope-dev )

Reply via email to