-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Tres Seaver wrote: > Lorenzo Gil Sánchez wrote: >> Here is the traceback information: > >> 2008-07-13T10:44:37 ERROR SiteError http://127.0.0.1:8080/@@index.html >> Traceback (most recent call last): >> File >> "/home/lgs/z3env25/eggs/tmpbLKU14/zope.publisher-3.5.3-py2.5.egg/zope/publisher/publish.py", >> line 133, in publish >> File >> "/home/lgs/z3env25/eggs/tmpaC6Rf5/zope.app.publication-3.4.3-py2.5.egg/zope/app/publication/zopepublication.py", >> line 167, in callObject >> File >> "/home/lgs/z3env25/eggs/tmpbLKU14/zope.publisher-3.5.3-py2.5.egg/zope/publisher/publish.py", >> line 108, in mapply >> - __traceback_info__: <bound method Contents.index of >> <zope.app.publisher.browser.viewmeta.Contents object at 0x7f0b7de06990>> >> File >> "/home/lgs/z3env25/eggs/tmpbLKU14/zope.publisher-3.5.3-py2.5.egg/zope/publisher/publish.py", >> line 114, in debug_call >> File >> "/home/lgs/z3env25/eggs/tmp8cmA1c/zope.app.container-3.6.0-py2.5-linux-x86_64.egg/zope/app/container/browser/contents.py", >> line 443, in index >> File >> "/home/lgs/z3env25/eggs/tmp6KzCKG/zope.app.pagetemplate-3.4.0-py2.5.egg/zope/app/pagetemplate/viewpagetemplatefile.py", >> line 83, in __call__ >> File >> "/home/lgs/z3env25/eggs/tmp6KzCKG/zope.app.pagetemplate-3.4.0-py2.5.egg/zope/app/pagetemplate/viewpagetemplatefile.py", >> line 51, in __call__ >> File >> "/home/lgs/z3env25/eggs/tmprTDkjU/zope.pagetemplate-3.4.0-py2.5.egg/zope/pagetemplate/pagetemplate.py", >> line 115, in pt_render >> File >> "/home/lgs/z3env25/eggs/tmpjL9hPq/zope.tal-3.5.0-py2.5.egg/zope/tal/talinterpreter.py", >> line 271, in __call__ >> File >> "/home/lgs/z3env25/eggs/tmpjL9hPq/zope.tal-3.5.0-py2.5.egg/zope/tal/talinterpreter.py", >> line 343, in interpret >> File >> "/home/lgs/z3env25/eggs/tmpjL9hPq/zope.tal-3.5.0-py2.5.egg/zope/tal/talinterpreter.py", >> line 888, in do_useMacro >> File >> "/home/lgs/z3env25/eggs/tmpjL9hPq/zope.tal-3.5.0-py2.5.egg/zope/tal/talinterpreter.py", >> line 343, in interpret >> File >> "/home/lgs/z3env25/eggs/tmpjL9hPq/zope.tal-3.5.0-py2.5.egg/zope/tal/talinterpreter.py", >> line 533, in do_optTag_tal >> File >> "/home/lgs/z3env25/eggs/tmpjL9hPq/zope.tal-3.5.0-py2.5.egg/zope/tal/talinterpreter.py", >> line 518, in do_optTag >> File >> "/home/lgs/z3env25/eggs/tmpjL9hPq/zope.tal-3.5.0-py2.5.egg/zope/tal/talinterpreter.py", >> line 513, in no_tag >> File >> "/home/lgs/z3env25/eggs/tmpjL9hPq/zope.tal-3.5.0-py2.5.egg/zope/tal/talinterpreter.py", >> line 343, in interpret >> File >> "/home/lgs/z3env25/eggs/tmpjL9hPq/zope.tal-3.5.0-py2.5.egg/zope/tal/talinterpreter.py", >> line 858, in do_defineMacro >> File >> "/home/lgs/z3env25/eggs/tmpjL9hPq/zope.tal-3.5.0-py2.5.egg/zope/tal/talinterpreter.py", >> line 343, in interpret >> File >> "/home/lgs/z3env25/eggs/tmpjL9hPq/zope.tal-3.5.0-py2.5.egg/zope/tal/talinterpreter.py", >> line 954, in do_defineSlot >> File >> "/home/lgs/z3env25/eggs/tmpjL9hPq/zope.tal-3.5.0-py2.5.egg/zope/tal/talinterpreter.py", >> line 343, in interpret >> File >> "/home/lgs/z3env25/eggs/tmpjL9hPq/zope.tal-3.5.0-py2.5.egg/zope/tal/talinterpreter.py", >> line 946, in do_defineSlot >> File >> "/home/lgs/z3env25/eggs/tmpjL9hPq/zope.tal-3.5.0-py2.5.egg/zope/tal/talinterpreter.py", >> line 343, in interpret >> File >> "/home/lgs/z3env25/eggs/tmpjL9hPq/zope.tal-3.5.0-py2.5.egg/zope/tal/talinterpreter.py", >> line 819, in do_loop_tal >> File >> "/home/lgs/z3env25/eggs/tmpXUllta/zope.tales-3.4.0-py2.5.egg/zope/tales/tales.py", >> line 682, in setRepeat >> File >> "/home/lgs/z3env25/eggs/tmpXUllta/zope.tales-3.4.0-py2.5.egg/zope/tales/tales.py", >> line 696, in evaluate > >> - >> /home/lgs/z3env25/eggs/zope.app.container-3.6.0-py2.5-linux-x86_64.egg/zope/app/container/browser/index.pt >> - Line 36, Column 6 >> - Expression: <PathExpr standard:u'view/listContentInfo'> >> - Names: >> {'args': (), >> 'context': <zope.app.folder.folder.Folder object at >> 0x7f0b7e9762a8>, >> 'default': <object object at 0x7f0b8a11c290>, >> 'loop': {}, >> 'nothing': None, >> 'options': {}, >> 'repeat': {}, >> 'request': <zope.publisher.browser.BrowserRequest instance >> URL=http://127.0.0.1:8080/@@index.html>, >> 'template': >> <zope.app.pagetemplate.viewpagetemplatefile.ViewPageTemplateFile object >> at 0x7f0b8122d110>, >> 'view': <zope.app.publisher.browser.viewmeta.Contents object at >> 0x7f0b7de06990>, >> 'views': <zope.app.pagetemplate.viewpagetemplatefile.ViewMapper >> object at 0x7f0b7de06a10>} >> File >> "/home/lgs/z3env25/eggs/tmpXUllta/zope.tales-3.4.0-py2.5.egg/zope/tales/expressions.py", >> line 217, in __call__ >> File >> "/home/lgs/z3env25/eggs/tmpXUllta/zope.tales-3.4.0-py2.5.egg/zope/tales/expressions.py", >> line 211, in _eval >> File >> "/home/lgs/z3env25/eggs/tmp8cmA1c/zope.app.container-3.6.0-py2.5-linux-x86_64.egg/zope/app/container/browser/contents.py", >> line 97, in listContentInfo >> File >> "/home/lgs/z3env25/eggs/tmp8cmA1c/zope.app.container-3.6.0-py2.5-linux-x86_64.egg/zope/app/container/browser/contents.py", >> line 123, in _normalListContentsInfo >> MemoryError > > >> Steps to reproduce this problem: > >> virtualenv --no-site-packages z3env25 >> cd z3env25 >> . bin/activate >> easy_install zopeproject >> zopeproject HelloWorld >> cd HelloWorld >> bin/paster serve deploy.ini > > >> I tried to go further and discover the source of this problem adding a >> breakpoint just before the exception is raised. This is what I got: > >> (Pdb) self.context >> <zope.app.folder.folder.Folder object at 0x7faf532e4320> >> (Pdb) self.context.keys() >> <OOBTreeItems object at 0x7faf52682030> >> (Pdb) tuple(self.context.keys()) >> *** MemoryError: >> (Pdb) self.context.values() >> <OOBTreeItems object at 0x7faf52682130> >> (Pdb) tuple(self.context.values()) >> *** MemoryError: > >> So, it may be a ZODB issue. > > Your container has too many items in it: the 'keys', 'items', and > 'values' methods of the BTree classes all return generators for exactly > this reason.
To follow up: 'zope.app.container.browser.contents' has the bug: 'Contents._normalListContentsInfo' calls 'map(self._extractContentInfo, self.context.items)', which won't scale for arbitrarily-large containers. In such cases, you need a contents view which creates / operates on batches. Tres. - -- =================================================================== Tres Seaver +1 540-429-0999 [EMAIL PROTECTED] Palladion Software "Excellence by Design" http://palladion.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFIejcf+gerLs4ltQ4RAhHOAJ0RWqXxIZwcM6YNdcAOHeUv8ByzNwCfb7vk QudgQxiPZhMCtNFufP2Wwkg= =ZB71 -----END PGP SIGNATURE----- _______________________________________________ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )