[ZODB-Dev] Recursion Error with ape and ZCatalog
Klaus Wölfel
k.woelfel at gmx.de
Wed Apr 7 17:15:14 EDT 2004
Hi,
I experience two problems with the otherwise great Ape storage. I've got a
ZCatalog with 22 indexes, the half of them being textindexes. When indexing
more than about 3000 objects I get the following error:
Traceback (innermost last):
Module ZPublisher.Publish, line 104, in publish
Module Zope.App.startup, line 221, in commit
Module ZODB.Transaction, line 233, in commit
Module ZODB.Transaction, line 348, in _commit_objects
Module apelib.zodb3.connection, line 263, in commit
Module apelib.core.io, line 152, in serialize
Module apelib.core.serializers, line 93, in serialize
Module apelib.zodb3.serializers, line 214, in serialize
RuntimeError: maximum recursion depth exceeded
I tried it with ape fs storage and with the sql storage with mysql, the latter
on both linux and win.
The other problem occurs when I use ZCtextIndex instead TexindeexNG as
textindex. Then after adding only some object and then clearing the Catalog i
get this error:
Traceback (innermost last):
Module ZPublisher.Publish, line 104, in publish
Module Zope.App.startup, line 221, in commit
Module ZODB.Transaction, line 233, in commit
Module ZODB.Transaction, line 348, in _commit_objects
Module apelib.zodb3.connection, line 263, in commit
Module apelib.core.io, line 152, in serialize
Module apelib.core.serializers, line 93, in serialize
Module apelib.zodb3.serializers, line 238, in serialize
RuntimeError: Unable to pickle the '_catalog' attribute, <Catalog instance at
4142e500>, of <ZCatalog instance at 413bf830> at '9'. Cannot pickle
<extension class Acquisition.ImplicitAcquirerWrapper at 408ab500> objects.
The same error occurs when adding a normal "old" textindex.
I suspect that ape doesn't know how to store either the ZCatalog, the Catalog,
the ZCTextIndex or the required lexicon, so I added this to the apeconf.xml
file:
<mapper name="anyfile">
<use-for class="Products.ZCatalog.Catalog.Catalog" />
<use-for class="Products.ZCatalog.ZCatalog.Catalog" />
<use-for class="Products.ZCTextIndex.ZCTextIndex.ZCTextIndex" />
<use-for class="Products.ZCTextIndex.ZCTextIndex.PLexicon" />
</mapper>
but it didn't help. Can anybody give me a hint what I'm doing wrong here?
Then I have some questions: In my Product all about 10,000 objects are stored
in an BTree so the ape fs-storge stores them all in one file. Is this a
problem - does this file needs to get somehow packed like Data.fs? Is the
whole file loaded in memory when accessing one of the objects?
Thanks
Klaus Woelfel
More information about the ZODB-Dev
mailing list