-----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 )

Reply via email to