[ZODB-Dev] 'PersistentReference' object has no attribute '_p_jar'

Dominique Lederer lederer.dominique at gmail.com
Mon Apr 6 05:13:58 EDT 2009


Dieter Maurer schrieb:
> Dominique Lederer wrote at 2009-3-30 11:15 +0200:
>> I am using ZODB 3.8.1 with Relstorage 1.1.3 on Postgres 8.1
>>
>> Frequently i am getting messages like:
>>
>> Unexpected error
>> Traceback (most recent call last):
>>  File
>> "/home/zope/zope_script/eggs/ZODB3-3.8.1-py2.4-linux-x86_64.egg/ZODB/ConflictResolution.py",
>> line 207, in tryToResolveConflict
>>    resolved = resolve(old, committed, newstate)
>>  File
>> "/home/zope/zope_script/eggs/zope.app.keyreference-3.4.1-py2.4.egg/zope/app/keyreference/persistent.py",
>> line 55, in __cmp__
>>    return cmp(
>> AttributeError: 'PersistentReference' object has no attribute '_p_jar'
> 
> You traceback looks strange. I miss a "resolve" line.
> 
> The bug is probably in this "resolve" function (missing in the traceback).
> The state handed down to the "resolve" function does not contain
> true persistent objects; instead they are replaced by "PersistentReference"s
> with almost no functionality. I think, the only thing one can do
> with them is compare them for equality.

thats all the traceback gives me.

i am now updating to zope.app.keyreference 3.6.0, which seems to fix the
problem, at least the changelog states:

Added support for new `ZODB.ConflictResolution.PersistentReference` behavior
  to persistent key references so that they can now, in many cases, allow
  conflict resolution when they are used as keys or set members in ZODB
  `BTrees` data structures.

if this fixes the issue, Zope3.4 should *not* pin zope.app.version to 3.4.0 when
using ZODB 3.8.0

may i ask, which is the right mailing list to report this?

cheers Dominique



More information about the ZODB-Dev mailing list