Hello all,I am running out of ideas, so I though maybe someone could help me spot the problem in this one. I have created a minimal example that reproduces the problem - basically, i have an OOBTree where keys are persistent objects and values are IOTreeSets. I am just storing elements, closing the transaction after each operation. Around the 600th element (sometimes 900th, it varies but seems to never reach 1000) a KeyError is thrown, just as if the operation in the previous line hadn't been performed. If i comment out the db instructions, everything runs as expected.
This is what I get when I run the code: """ [...] 604 <BTrees.IOBTree.IOTreeSet object at 0x84fc38c> 605 <BTrees.IOBTree.IOTreeSet object at 0x84fc3d4> 606 <BTrees.IOBTree.IOTreeSet object at 0x844b1dc> 607 <BTrees.IOBTree.IOTreeSet object at 0x84fc41c> 608 <BTrees.IOBTree.IOTreeSet object at 0x84fc4ac> 609 Traceback (most recent call last): File "test-zodb.py", line 40, in <module> struct.index_obj(obj, i) File "test-zodb.py", line 20, in index_obj print number, self._idx[obj] KeyError: <__main__.DummyObject object at 0x844822c> """Could this be some problem with using persistent objects as keys in a BTree? Some comparison problem?
Any help would be much appreciated :) Thanks, Pedro
oobtree.py
Description: application/python
_______________________________________________ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org https://mail.zope.org/mailman/listinfo/zodb-dev