[Zope-dev] Re: [Bug] ZODB invalidation processing
Joachim Schmitz
js at aixtraware.de
Thu May 31 16:56:30 EDT 2007
Hi,
I was able to locate the places in the Zope-sources where the conflict
error is triggered. On my local system it's in
ZODB.FileStorage in the store-method there is
if serial != cached_tid:
rdata = self.tryToResolveConflict(oid, cached_tid,serial, data)
in the tryToResolveConflict method of ZODB.ConnflictResolution there is:
committed = state(self, oid, committedSerial, prfactory, committedData)
print "resolve", resolve
resolved = resolve(old, committed, newstate)
I found that the resolve-function raises an ConflictError exception, so
I put an print there to find out which resolve function. Here is the output:
resolve <bound method Length._p_resolveConflict of <BTrees.Length.Length
object at 0xb28fff6c>>
resolve <built-in method _p_resolveConflict of BTrees._OIBTree.OIBucket
object at 0xb1b81224>
resolve <built-in method _p_resolveConflict of BTrees._OIBTree.OIBucket
object at 0xb1b81224>
resolve <built-in method _p_resolveConflict of BTrees._OIBTree.OIBucket
object at 0xb260c80c>
resolve <built-in method _p_resolveConflict of BTrees._OIBTree.OIBucket
object at 0xb260c614>
resolve <bound method Length._p_resolveConflict of <BTrees.Length.Length
object at 0xb2a9146c>>
resolve <built-in method _p_resolveConflict of BTrees._IOBTree.IOBucket
object at 0xb1b81224>
The last resolve raises an exeption
(Pdb) p sys.exc_info()
(<class ZODB.POSException.BTreesConflictError at 0xb78df0bc>,
BTreesConflictError(-1, 47, 47, 6), <traceback object at 0xb1c34dec>)
How can I invest this further, especially how can I get information
about the actual object,which is causing the conflict.
--
Gruß Joachim
More information about the Zope-Dev
mailing list