Products.cmfplone: Fatal crash: Fatal Python error: Cannot recover from stack overflow.

Created on 3 Jun 2019  路  27Comments  路  Source: plone/Products.CMFPlone

See

https://community.plone.org/t/python-3-6-potentially-problematic-for-plone-5-2-fatal-python-error-cannot-recover-from-stack-overflow/8589

It's currently unclear if this is local issue (perhaps tied to Fedore Core 26) or a more systematic failure.

And it is unclear how to reproduce this (it is completely reproducible on a larger migration setup on my machine)...requires more analysis.

bug blocker

All 27 comments

Similar issue in a completely different customer project.

Allow me to mark this as blocker because this is a serious instability.

And still no idea how to reproduce that in a normal Plone context. This traceback happens on the UGent migration environment on Debian 9 , Python 3.7.3 and some add-ons (Dexterity types only...nothing fancy).

```
WARNING:plone.app.contenttypes.indexers:Lookup of PrimaryField failed for http://nohost/plone_portal/microscopycentre/img/fotos-specialist-course2018.htm/demo10-jpg If renaming or importing please reindex!
WARNING:plone.app.contenttypes.indexers:Lookup of PrimaryField failed for http://nohost/plone_portal/microscopycentre/img/fotos-specialist-course2018.htm/kick-off2-jpg If renaming or importing please reindex!
WARNING:plone.app.contenttypes.indexers:Lookup of PrimaryField failed for http://nohost/plone_portal/microscopycentre/img/fotos-specialist-course2018.htm/kick-off3-jpg If renaming or importing please reindex!
WARNING:plone.app.contenttypes.indexers:Lookup of PrimaryField failed for http://nohost/plone_portal/microscopycentre/img/fotos-specialist-course2018.htm/kick-off6-jpg If renaming or importing please reindex!
WARNING:plone.app.contenttypes.indexers:Lookup of PrimaryField failed for http://nohost/plone_portal/microscopycentre/img/fotos-specialist-course2018.htm/kick-off5-jpg If renaming or importing please reindex!
WARNING:plone.app.contenttypes.indexers:Lookup of PrimaryField failed for http://nohost/plone_portal/microscopycentre/img/toon-jpg If renaming or importing please reindex!
WARNING:plone.app.contenttypes.indexers:Lookup of PrimaryField failed for http://nohost/plone_portal/microscopycentre/img/wf.htm If renaming or importing please reindex!
WARNING:plone.app.contenttypes.indexers:Lookup of PrimaryField failed for http://nohost/plone_portal/microscopycentre/img/toon.htm If renaming or importing please reindex!
WARNING:plone.app.contenttypes.indexers:Lookup of PrimaryField failed for http://nohost/plone_portal/microscopycentre/img/unite.htm If renaming or importing please reindex!
WARNING:plone.app.contenttypes.indexers:Lookup of PrimaryField failed for http://nohost/plone_portal/microscopycentre/img/spt If renaming or importing please reindex!
WARNING:plone.app.contenttypes.indexers:Lookup of PrimaryField failed for http://nohost/plone_portal/openuniversiteit/nl/contact/studiegids2015.pdf If renaming or importing please reindex!
WARNING:plone.app.contenttypes.indexers:Lookup of PrimaryField failed for http://nohost/plone_portal/openuniversiteit/nl/contact/studiegids2015.pdf If renaming or importing please reindex!
Fatal Python error: Cannot recover from stack overflow.

Thread 0x00007fe43f8b0700 (most recent call first):
File "/opt/python-3.7.3/lib/python3.7/selectors.py", line 468 in select
File "/opt/python-3.7.3/lib/python3.7/asyncio/base_events.py", line 1739 in _run_once
File "/opt/python-3.7.3/lib/python3.7/asyncio/base_events.py", line 539 in run_forever
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/ZEO-5.2.1-py3.7.egg/ZEO/asyncio/client.py", line 861 in run
File "/opt/python-3.7.3/lib/python3.7/threading.py", line 865 in run
File "/opt/python-3.7.3/lib/python3.7/threading.py", line 917 in _bootstrap_inner
File "/opt/python-3.7.3/lib/python3.7/threading.py", line 885 in _bootstrap

Current thread 0x00007fe44e046500 (most recent call first):
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.component-4.5-py3.7.egg/zope/component/hooks.py", line 103 in getSiteManager
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.component-4.5-py3.7.egg/zope/component/_api.py", line 157 in queryUtility
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.7.egg/Products/CMFCore/DynamicType.py", line 71 in getTypeInfo
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 96 in getLayout
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 75 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 76 in __call__
...
Aborted

```

So, I have no Fedora Core to test this. Does it happen in a Fedora Core Docker container as well? W/o any possibility to make this happen its unlikely we can fix anything here.

So, I have no Fedora Core to test this. Does it happen in a Fedora Core Docker container as well? W/o any possibility to make this happen its unlikely we can fix anything here.

It also happens in my second customer project on Debian 9

This looks like it runs into an infinite loop, but then Python crashes before a MaximumRecursion error happens. Is it possible to extract the conditition when this happens?

Will try to hunt this down here. Problem is that you need a longer running catalog rebuild a precondition (my other crashes in Onkopedia project) happended within a simple browser view...

Seems it is possible to crash in this way, here I found something somehow related explaining it in context of logging https://bugs.python.org/issue36272#msg337843

I thougt the issues would be somehow bound to Python 3.6 only and perhaps some specialites of the Fedora system Python but the issue is more serious - Python 3.7.3 self-compiled on Debian 9 and the issue can happen in various context...but I don't see a pattern. At least it appears reproducible across instance restart if you have found a situation where the crash occurs.

I filed a Python bug report:

https://bugs.python.org/issue37402

It fails here in line 76 of our code:

https://github.com/plone/Products.CMFDynamicViewFTI/blob/c14c984c690fb89d158d3a025d00e2e1795f23ed/Products/CMFDynamicViewFTI/browserdefault.py#L69-L76

It runs into a recursion, which is the Plone related bug here we need to fix.

This must not crash the interpreter, but lead to a MaximumRecursionError.

Perhaps true but it is still weird that Plone crashes with an error inside a browser view while the same code and same parameters did not cause crash on a different machine...this confuses me.

For debugging the recursion inside browserdefault.py:

    @security.protected(View)
    def __call__(self):
        """
        Resolve and return the selected view template applied to the object.
        This should not consider the default page.
        """ 
        template = self.unrestrictedTraverse(self.getLayout())
        print(self, self.__class__, self.getLayout() , template)
        return template()

<Folder at diploma> <class 'plone.app.contenttypes.content.Folder'> None <Folder at diploma>
<Folder at diploma> <class 'plone.app.contenttypes.content.Folder'> None <Folder at diploma>
<Folder at diploma> <class 'plone.app.contenttypes.content.Folder'> None <Folder at diploma>
<Folder at diploma> <class 'plone.app.contenttypes.content.Folder'> None <Folder at diploma>
<Folder at diploma> <class 'plone.app.contenttypes.content.Folder'> None <Folder at diploma>
<Folder at diploma> <class 'plone.app.contenttypes.content.Folder'> None <Folder at diploma>

So it seems that if self.getLayout() return None the view calls itself again.
Might it be a misconfiguration in the fti for the given portal_type?
Should we just raise an exception if self.getLayout() returns None?

  • getLayout() is None
  • self.unrestrictedTraverse() is self

-> the template is the Folder
-> Recursion.

Question is, why is Layout None? This must not happen, right?

Anyway, we should raise here if getLayout() is None.

And further in https://github.com/plone/Products.CMFDynamicViewFTI/blob/c14c984c690fb89d158d3a025d00e2e1795f23ed/Products/CMFDynamicViewFTI/browserdefault.py#L96-L98 the only way to return None is to have a default of None.

Further, the getDefaultViewMethod never can be None, because a str() of whatever value come in is returned.

@zopyx, may you add some prints at the places above to see if my hypothesis is right?

@zopyx, may you add some prints at the places above to see if my hypothesis is right?

Working on it

<Folder at /plone_portal/openuniversiteit/nl/studerenaanopenuniversiteit/diploma>
>>> doc.portal_type
'Folder'
>>> doc.getLayout()
FTI for http://nohost/plone_portal/openuniversiteit/nl/studerenaanopenuniversiteit/diploma: None <class 'plone.app.contenttypes.content.Folder'>
>>> doc.getTypeInfo()
>>> doc.getDefaultViewMethod()

The fti is None because I am working from the debugger console without having called setSite().
This explains _this_ recursion but it does not explain the Python crash.

Well, Python exits fatally to avoid the worse:

[ale@emily tmp]$ cat test.py 
def test():
   try:
       test()
   except:
       test()

test()
[ale@emily tmp]$ python3.7 test.py
Fatal Python error: Cannot recover from stack overflow.
Current thread 0x00007f99af9bc740 (most recent call first):
  File "test.py", line 3 in test
  ...
Aborted (core dumped)

This is script which caused the error above (however without calling setSite()).

from zope.component.hooks import setSite
import transaction


site = app.plone_portal
setSite(site)

site.portal_catalog.manage_catalogRebuild()
import transaction
transaction.commit()

Now with setSite():

bin/instance run foo.py 
Class Products.CMFFormController.ControllerPythonScript.ControllerPythonScript has a security declaration for nonexistent method 'ZPythonScriptHTML_changePrefs'
Class Products.CMFFormController.ControllerValidator.ControllerValidator has a security declaration for nonexistent method 'ZPythonScriptHTML_changePrefs'
/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/pyScss-1.3.5-py3.7-linux-x86_64.egg/scss/selector.py:54: FutureWarning: Possible nested set at position 329
  ''', re.VERBOSE | re.MULTILINE)
WARNING:plone.behavior:Specifying 'for' in behavior 'Tiles' if no 'factory' is given has no effect and is superfluous.
WARNING:PrintingMailHost:Hold on to your hats folks, I'm a-patchin'
WARNING:PrintingMailHost:

******************************************************************************

Monkey patching MailHosts to print e-mails to the terminal.

This is instead of sending them.

NO MAIL WILL BE SENT FROM ZOPE AT ALL!

Turn off debug mode or remove Products.PrintingMailHost from the eggs
or remove ENABLE_PRINTING_MAILHOST from the environment variables to
return to normal e-mail sending.

See https://pypi.python.org/pypi/Products.PrintingMailHost

******************************************************************************

/home/ajung/sandboxes/ugent-portaal-plone-4x/parts/instance/bin/interpreter:1: DeprecationWarning: makerequest is deprecated. Please import from Testing.makerequest.
  #!/home/ajung/sandboxes/ugent-portaal-plone-4x/bin/python3
FTI for http://nohost/plone_portal/openuniversiteit/nl/studerenaanopenuniversiteit/diploma: <DexterityFTI at Folder> <class 'plone.app.contenttypes.content.Folder'>
FTI for http://nohost/plone_portal/openuniversiteit/nl/studerenaanopenuniversiteit/diploma: <DexterityFTI at Folder> <class 'plone.app.contenttypes.content.Folder'>
http://nohost/plone_portal/openuniversiteit/nl/studerenaanopenuniversiteit/diploma <class 'plone.app.contenttypes.content.Folder'> listing_view <Products.Five.browser.metaconfigure.SimpleViewClass from /home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.app.contenttypes-2.0.5-py3.7.egg/plone/app/contenttypes/browser/templates/listing.pt object at 0x7fc90eb7fd68>
FTI for http://nohost/plone_portal/openuniversiteit/nl/studerenaanopenuniversiteit/diploma: <DexterityFTI at Folder> <class 'plone.app.contenttypes.content.Folder'>
FTI for http://nohost/plone_portal/openuniversiteit/nl/studerenaanopenuniversiteit/diploma: <DexterityFTI at Folder> <class 'plone.app.contenttypes.content.Folder'>
http://nohost/plone_portal/openuniversiteit/nl/studerenaanopenuniversiteit/diploma <class 'plone.app.contenttypes.content.Folder'> listing_view <Products.Five.browser.metaconfigure.SimpleViewClass from /home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.app.contenttypes-2.0.5-py3.7.egg/plone/app/contenttypes/browser/templates/listing.pt object at 0x7fc90ea59ef0>
FTI for http://nohost/plone_portal/openuniversiteit/nl/studerenaanopenuniversiteit/diploma: <DexterityFTI at Folder> <class 'plone.app.contenttypes.content.Folder'>
ERROR:portlets:Error while determining renderer availability of portlet ('context' '/plone_portal' 'navigation'): 'externalEditorEnabled'

 - Expression: "provider:plone.belowcontentbody"
 - Filename:   ... egg/Products/CMFPlone/browser/templates/main_template.pt
 - Location:   (line 100: col 70)
 - Source:     ... 
                                     ^
 - Expression: "context/@@main_template/macros/master"
 - Filename:   ... .egg/plone/app/contenttypes/browser/templates/listing.pt
 - Location:   (line 6: col 21)
 - Source:     ... tal:use-macro="context/@@main_template/macros/master"
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 - Arguments:  template: <ViewPageTemplateFile - at 0x7fc90eb93278>
               options: {...} (0)
               args: <tuple - at 0x7fc95bf1f048>
               nothing: <NoneType - at 0x5607b13d9820>
               modules: <_SecureModuleImporter - at 0x7fc9537f6cc0>
               request: <HTTPRequest - at 0x7fc94f18eac8>
               view: <SimpleViewClass from /home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.app.contenttypes-2.0.5-py3.7.egg/plone/app/contenttypes/browser/templates/listing.pt listing_view at 0x7fc90ea59ef0>
               context: <ImplicitAcquisitionWrapper diploma at 0x7fc90eaf5ee8>
               views: <ViewMapper - at 0x7fc90ea362e8>
               here: <ImplicitAcquisitionWrapper diploma at 0x7fc90eaf5ee8>
               container: <ImplicitAcquisitionWrapper diploma at 0x7fc90eaf5ee8>
               root: <ImplicitAcquisitionWrapper  at 0x7fc9471ef678>
               traverse_subpath: <list - at 0x7fc90aff2b48>
               user: <UnrestrictedUser - at 0x7fc95444b5f8>
               default: <object - at 0x7fc95befaa60>
               repeat: {...} (0)
               loop: {...} (1)
               wrapped_repeat: <SafeMapping - at 0x7fc90e92d088>
               target_language: <NoneType - at 0x5607b13d9820>
               translate: <function translate at 0x7fc90c8d9598>
               macroname: master
Traceback (most recent call last):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Chameleon-3.6.1-py3.7.egg/chameleon/template.py", line 187, in render
    self._render(stream, econtext, rcontext)
  File "db171fe97358b08fd047cf0e2369cb30.py", line 1750, in render
  File "88010f8eff8761c572c5f6b77e8bcebb.py", line 676, in render_master
  File "88010f8eff8761c572c5f6b77e8bcebb.py", line 1250, in render_content
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/z3c.pt-3.2.0-py3.7.egg/z3c/pt/expressions.py", line 70, in render_content_provider
    cp.update()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.viewlet-4.2.1-py3.7.egg/zope/viewlet/manager.py", line 155, in update
    self._updateViewlets()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.viewlet-4.2.1-py3.7.egg/zope/viewlet/manager.py", line 161, in _updateViewlets
    viewlet.update()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.app.layout-3.1.3-py3.7.egg/plone/app/layout/viewlets/content.py", line 55, in update
    self.actions = self.context_state.actions('document_actions')
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.memoize-2.0.1-py3.7.egg/plone/memoize/view.py", line 48, in memogetter
    value = cache[key] = func(*args, **kwargs)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.app.layout-3.1.3-py3.7.egg/plone/app/layout/globals/context.py", line 246, in actions
    max=max,
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFPlone-5.2rc3-py3.7.egg/Products/CMFPlone/ActionsTool.py", line 85, in listActionInfos
    if check_condition and not ai['available']:
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.7.egg/Products/CMFCore/ActionInformation.py", line 212, in __getitem__
    value = self.data[key] = value(self._ec)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.7.egg/Products/CMFCore/Expression.py", line 53, in __call__
    res = compiled(econtext)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.tales-4.3-py3.7.egg/zope/tales/expressions.py", line 234, in __call__
    return self._eval(econtext)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/Products/PageTemplates/Expressions.py", line 152, in _eval
    ob = self._subexprs[-1](econtext)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.tales-4.3-py3.7.egg/zope/tales/expressions.py", line 139, in _eval
    ob = self._traverser(ob, element, econtext)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/Products/PageTemplates/Expressions.py", line 77, in boboAwareZopeTraverse
    object = object.restrictedTraverse(name)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/OFS/Traversable.py", line 366, in restrictedTraverse
    return self.unrestrictedTraverse(path, default, restricted=True)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/OFS/Traversable.py", line 349, in unrestrictedTraverse
    raise e
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/OFS/Traversable.py", line 300, in unrestrictedTraverse
    next = obj[name]
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.folder-3.0.0-py3.7.egg/plone/folder/ordered.py", line 241, in __getitem__
    raise KeyError(key)
KeyError: 'externalEditorEnabled'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.portlets-2.3.1-py3.7.egg/plone/portlets/manager.py", line 119, in _lazyLoadPortlets
    isAvailable = renderer.available
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.app.portlets-4.4.2-py3.7.egg/plone/app/portlets/portlets/navigation.py", line 211, in available
    rootpath = self.getNavRootPath()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.memoize-2.0.1-py3.7.egg/plone/memoize/instance.py", line 53, in memogetter
    val = func(*args, **kwargs)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.app.portlets-4.4.2-py3.7.egg/plone/app/portlets/portlets/navigation.py", line 295, in getNavRootPath
    self.data.root_uid)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.app.portlets-4.4.2-py3.7.egg/plone/app/portlets/portlets/navigation.py", line 510, in getRootPath
    root = uuidToObject(root)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.app.uuid-2.0.0-py3.7.egg/plone/app/uuid/utils.py", line 35, in uuidToObject
    brain = uuidToCatalogBrain(uuid)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.app.uuid-2.0.0-py3.7.egg/plone/app/uuid/utils.py", line 54, in uuidToCatalogBrain
    result = catalog(UID=uuid)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFPlone-5.2rc3-py3.7.egg/Products/CMFPlone/CatalogTool.py", line 429, in searchResults
    processQueue()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.7.egg/Products/CMFCore/indexing.py", line 95, in processQueue
    processed = queue.process()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.7.egg/Products/CMFCore/indexing.py", line 222, in process
    util.reindex(obj, attributes, update_metadata=metadata)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.7.egg/Products/CMFCore/indexing.py", line 50, in reindex
    update_metadata=update_metadata)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.7.egg/Products/CMFCore/CatalogTool.py", line 367, in _reindexObject
    self.catalog_object(object, uid, idxs, update_metadata)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFPlone-5.2rc3-py3.7.egg/Products/CMFPlone/CatalogTool.py", line 351, in catalog_object
    update_metadata, pghandler=pghandler)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.ZCatalog-4.4-py3.7.egg/Products/ZCatalog/ZCatalog.py", line 498, in catalog_object
    update_metadata=update_metadata)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.ZCatalog-4.4-py3.7.egg/Products/ZCatalog/Catalog.py", line 338, in catalogObject
    index = self.updateMetadata(object, uid, None)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.ZCatalog-4.4-py3.7.egg/Products/ZCatalog/Catalog.py", line 289, in updateMetadata
    newDataRecord = self.recordify(object)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.ZCatalog-4.4-py3.7.egg/Products/ZCatalog/Catalog.py", line 424, in recordify
    attr = attr()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 77, in __call__
    return template()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.browserpage-4.3.0-py3.7.egg/zope/browserpage/simpleviewclass.py", line 41, in __call__
    return self.index(*args, **kw)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/Products/Five/browser/pagetemplatefile.py", line 125, in __call__
    return self.__func__(__self__, *args, **kw)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/Products/Five/browser/pagetemplatefile.py", line 60, in __call__
    sourceAnnotations=getattr(debug_flags, 'sourceAnnotations', 0),
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.pagetemplate-4.4.1-py3.7.egg/zope/pagetemplate/pagetemplate.py", line 135, in pt_render
    strictinsert=0, sourceAnnotations=sourceAnnotations
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/Products/PageTemplates/engine.py", line 90, in __call__
    return self.template.render(**kwargs)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/z3c.pt-3.2.0-py3.7.egg/z3c/pt/pagetemplate.py", line 173, in render
    return base_renderer(**context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Chameleon-3.6.1-py3.7.egg/chameleon/zpt/template.py", line 306, in render
    return super(PageTemplate, self).render(**_kw)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Chameleon-3.6.1-py3.7.egg/chameleon/template.py", line 209, in render
    raise_with_traceback(exc, tb)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Chameleon-3.6.1-py3.7.egg/chameleon/utils.py", line 75, in raise_with_traceback
    raise exc
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Chameleon-3.6.1-py3.7.egg/chameleon/template.py", line 187, in render
    self._render(stream, econtext, rcontext)
  File "db171fe97358b08fd047cf0e2369cb30.py", line 1750, in render
  File "88010f8eff8761c572c5f6b77e8bcebb.py", line 676, in render_master
  File "88010f8eff8761c572c5f6b77e8bcebb.py", line 1250, in render_content
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/z3c.pt-3.2.0-py3.7.egg/z3c/pt/expressions.py", line 70, in render_content_provider
    cp.update()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.viewlet-4.2.1-py3.7.egg/zope/viewlet/manager.py", line 155, in update
    self._updateViewlets()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.viewlet-4.2.1-py3.7.egg/zope/viewlet/manager.py", line 161, in _updateViewlets
    viewlet.update()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.app.layout-3.1.3-py3.7.egg/plone/app/layout/viewlets/content.py", line 55, in update
    self.actions = self.context_state.actions('document_actions')
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.memoize-2.0.1-py3.7.egg/plone/memoize/view.py", line 48, in memogetter
    value = cache[key] = func(*args, **kwargs)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.app.layout-3.1.3-py3.7.egg/plone/app/layout/globals/context.py", line 246, in actions
    max=max,
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFPlone-5.2rc3-py3.7.egg/Products/CMFPlone/ActionsTool.py", line 85, in listActionInfos
    if check_condition and not ai['available']:
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.7.egg/Products/CMFCore/ActionInformation.py", line 212, in __getitem__
    value = self.data[key] = value(self._ec)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.7.egg/Products/CMFCore/Expression.py", line 53, in __call__
    res = compiled(econtext)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.tales-4.3-py3.7.egg/zope/tales/expressions.py", line 234, in __call__
    return self._eval(econtext)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/Products/PageTemplates/Expressions.py", line 152, in _eval
    ob = self._subexprs[-1](econtext)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.tales-4.3-py3.7.egg/zope/tales/expressions.py", line 139, in _eval
    ob = self._traverser(ob, element, econtext)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/Products/PageTemplates/Expressions.py", line 77, in boboAwareZopeTraverse
    object = object.restrictedTraverse(name)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/OFS/Traversable.py", line 366, in restrictedTraverse
    return self.unrestrictedTraverse(path, default, restricted=True)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/OFS/Traversable.py", line 349, in unrestrictedTraverse
    raise e
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/OFS/Traversable.py", line 300, in unrestrictedTraverse
    next = obj[name]
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.folder-3.0.0-py3.7.egg/plone/folder/ordered.py", line 241, in __getitem__
    raise KeyError(key)
KeyError: 'externalEditorEnabled'

 - Expression: "provider:plone.belowcontentbody"
 - Filename:   ... egg/Products/CMFPlone/browser/templates/main_template.pt
 - Location:   (line 100: col 70)
 - Source:     ... 
                                     ^
 - Expression: "context/@@main_template/macros/master"
 - Filename:   ... .egg/plone/app/contenttypes/browser/templates/listing.pt
 - Location:   (line 6: col 21)
 - Source:     ... tal:use-macro="context/@@main_template/macros/master"
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 - Arguments:  template: <ViewPageTemplateFile - at 0x7fc90eb93278>
               options: {...} (0)
               args: <tuple - at 0x7fc95bf1f048>
               nothing: <NoneType - at 0x5607b13d9820>
               modules: <_SecureModuleImporter - at 0x7fc9537f6cc0>
               request: <HTTPRequest - at 0x7fc94f18eac8>
               view: <SimpleViewClass from /home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.app.contenttypes-2.0.5-py3.7.egg/plone/app/contenttypes/browser/templates/listing.pt listing_view at 0x7fc90ea59ef0>
               context: <ImplicitAcquisitionWrapper diploma at 0x7fc90eaf5ee8>
               views: <ViewMapper - at 0x7fc90ea362e8>
               here: <ImplicitAcquisitionWrapper diploma at 0x7fc90eaf5ee8>
               container: <ImplicitAcquisitionWrapper diploma at 0x7fc90eaf5ee8>
               root: <ImplicitAcquisitionWrapper  at 0x7fc9471ef678>
               traverse_subpath: <list - at 0x7fc90aff2b48>
               user: <UnrestrictedUser - at 0x7fc95444b5f8>
               default: <object - at 0x7fc95befaa60>
               repeat: {...} (0)
               loop: {...} (1)
               wrapped_repeat: <SafeMapping - at 0x7fc90e92d088>
               target_language: <NoneType - at 0x5607b13d9820>
               translate: <function translate at 0x7fc90c8d9598>
               macroname: master
FTI for http://nohost/plone_portal/openuniversiteit/nl/studerenaanopenuniversiteit/diploma: <DexterityFTI at Folder> <class 'plone.app.contenttypes.content.Folder'>
FTI for http://nohost/plone_portal/openuniversiteit/nl/studerenaanopenuniversiteit/diploma: <DexterityFTI at Folder> <class 'plone.app.contenttypes.content.Folder'>
FTI for http://nohost/plone_portal/openuniversiteit/nl/studerenaanopenuniversiteit/diploma: <DexterityFTI at Folder> <class 'plone.app.contenttypes.content.Folder'>
http://nohost/plone_portal/openuniversiteit/nl/studerenaanopenuniversiteit/diploma <class 'plone.app.contenttypes.content.Folder'> listing_view <Products.Five.browser.metaconfigure.SimpleViewClass from /home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.app.contenttypes-2.0.5-py3.7.egg/plone/app/contenttypes/browser/templates/listing.pt object at 0x7fc912f5be48>
FTI for http://nohost/plone_portal/openuniversiteit/nl/studerenaanopenuniversiteit/diploma: <DexterityFTI at Folder> <class 'plone.app.contenttypes.content.Folder'>
Traceback (most recent call last):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Chameleon-3.6.1-py3.7.egg/chameleon/template.py", line 187, in render
    self._render(stream, econtext, rcontext)
  File "db171fe97358b08fd047cf0e2369cb30.py", line 1750, in render
  File "88010f8eff8761c572c5f6b77e8bcebb.py", line 676, in render_master
  File "88010f8eff8761c572c5f6b77e8bcebb.py", line 1250, in render_content
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/z3c.pt-3.2.0-py3.7.egg/z3c/pt/expressions.py", line 70, in render_content_provider
    cp.update()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.viewlet-4.2.1-py3.7.egg/zope/viewlet/manager.py", line 155, in update
    self._updateViewlets()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.viewlet-4.2.1-py3.7.egg/zope/viewlet/manager.py", line 161, in _updateViewlets
    viewlet.update()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.app.layout-3.1.3-py3.7.egg/plone/app/layout/viewlets/content.py", line 55, in update
    self.actions = self.context_state.actions('document_actions')
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.memoize-2.0.1-py3.7.egg/plone/memoize/view.py", line 48, in memogetter
    value = cache[key] = func(*args, **kwargs)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.app.layout-3.1.3-py3.7.egg/plone/app/layout/globals/context.py", line 246, in actions
    max=max,
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFPlone-5.2rc3-py3.7.egg/Products/CMFPlone/ActionsTool.py", line 85, in listActionInfos
    if check_condition and not ai['available']:
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.7.egg/Products/CMFCore/ActionInformation.py", line 212, in __getitem__
    value = self.data[key] = value(self._ec)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.7.egg/Products/CMFCore/Expression.py", line 53, in __call__
    res = compiled(econtext)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.tales-4.3-py3.7.egg/zope/tales/expressions.py", line 234, in __call__
    return self._eval(econtext)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/Products/PageTemplates/Expressions.py", line 152, in _eval
    ob = self._subexprs[-1](econtext)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.tales-4.3-py3.7.egg/zope/tales/expressions.py", line 139, in _eval
    ob = self._traverser(ob, element, econtext)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/Products/PageTemplates/Expressions.py", line 77, in boboAwareZopeTraverse
    object = object.restrictedTraverse(name)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/OFS/Traversable.py", line 366, in restrictedTraverse
    return self.unrestrictedTraverse(path, default, restricted=True)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/OFS/Traversable.py", line 349, in unrestrictedTraverse
    raise e
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/OFS/Traversable.py", line 300, in unrestrictedTraverse
    next = obj[name]
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.folder-3.0.0-py3.7.egg/plone/folder/ordered.py", line 241, in __getitem__
    raise KeyError(key)
KeyError: 'externalEditorEnabled'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/parts/instance/bin/interpreter", line 294, in <module>
    exec(_val)
  File "<string>", line 1, in <module>
  File "foo.py", line 10, in <module>
    transaction.commit()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/transaction-2.4.0-py3.7.egg/transaction/_manager.py", line 252, in commit
    return self.manager.commit()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/transaction-2.4.0-py3.7.egg/transaction/_manager.py", line 131, in commit
    return self.get().commit()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/transaction-2.4.0-py3.7.egg/transaction/_transaction.py", line 296, in commit
    self._callBeforeCommitHooks()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/transaction-2.4.0-py3.7.egg/transaction/_transaction.py", line 367, in _callBeforeCommitHooks
    hook(*args, **kws)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.7.egg/Products/CMFCore/indexing.py", line 312, in before_commit
    self.queue.process()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.7.egg/Products/CMFCore/indexing.py", line 222, in process
    util.reindex(obj, attributes, update_metadata=metadata)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.7.egg/Products/CMFCore/indexing.py", line 50, in reindex
    update_metadata=update_metadata)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.7.egg/Products/CMFCore/CatalogTool.py", line 367, in _reindexObject
    self.catalog_object(object, uid, idxs, update_metadata)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFPlone-5.2rc3-py3.7.egg/Products/CMFPlone/CatalogTool.py", line 351, in catalog_object
    update_metadata, pghandler=pghandler)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.ZCatalog-4.4-py3.7.egg/Products/ZCatalog/ZCatalog.py", line 498, in catalog_object
    update_metadata=update_metadata)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.ZCatalog-4.4-py3.7.egg/Products/ZCatalog/Catalog.py", line 338, in catalogObject
    index = self.updateMetadata(object, uid, None)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.ZCatalog-4.4-py3.7.egg/Products/ZCatalog/Catalog.py", line 289, in updateMetadata
    newDataRecord = self.recordify(object)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.ZCatalog-4.4-py3.7.egg/Products/ZCatalog/Catalog.py", line 424, in recordify
    attr = attr()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 77, in __call__
    return template()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.browserpage-4.3.0-py3.7.egg/zope/browserpage/simpleviewclass.py", line 41, in __call__
    return self.index(*args, **kw)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/Products/Five/browser/pagetemplatefile.py", line 125, in __call__
    return self.__func__(__self__, *args, **kw)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/Products/Five/browser/pagetemplatefile.py", line 60, in __call__
    sourceAnnotations=getattr(debug_flags, 'sourceAnnotations', 0),
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.pagetemplate-4.4.1-py3.7.egg/zope/pagetemplate/pagetemplate.py", line 135, in pt_render
    strictinsert=0, sourceAnnotations=sourceAnnotations
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/Products/PageTemplates/engine.py", line 90, in __call__
    return self.template.render(**kwargs)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/z3c.pt-3.2.0-py3.7.egg/z3c/pt/pagetemplate.py", line 173, in render
    return base_renderer(**context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Chameleon-3.6.1-py3.7.egg/chameleon/zpt/template.py", line 306, in render
    return super(PageTemplate, self).render(**_kw)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Chameleon-3.6.1-py3.7.egg/chameleon/template.py", line 187, in render
    self._render(stream, econtext, rcontext)
  File "db171fe97358b08fd047cf0e2369cb30.py", line 1750, in render
  File "88010f8eff8761c572c5f6b77e8bcebb.py", line 574, in render_master
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/z3c.pt-3.2.0-py3.7.egg/z3c/pt/expressions.py", line 70, in render_content_provider
    cp.update()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.viewlet-4.2.1-py3.7.egg/zope/viewlet/manager.py", line 155, in update
    self._updateViewlets()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.viewlet-4.2.1-py3.7.egg/zope/viewlet/manager.py", line 161, in _updateViewlets
    viewlet.update()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.app.layout-3.1.3-py3.7.egg/plone/app/layout/viewlets/common.py", line 393, in update
    self.portal_tabs = portal_tabs_view.topLevelTabs()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFPlone-5.2rc3-py3.7.egg/Products/CMFPlone/browser/navigation.py", line 146, in topLevelTabs
    rawresult = catalog.searchResults(query)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFPlone-5.2rc3-py3.7.egg/Products/CMFPlone/CatalogTool.py", line 429, in searchResults
    processQueue()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.7.egg/Products/CMFCore/indexing.py", line 95, in processQueue
    processed = queue.process()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.7.egg/Products/CMFCore/indexing.py", line 222, in process
    util.reindex(obj, attributes, update_metadata=metadata)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.7.egg/Products/CMFCore/indexing.py", line 50, in reindex
    update_metadata=update_metadata)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.7.egg/Products/CMFCore/CatalogTool.py", line 367, in _reindexObject
    self.catalog_object(object, uid, idxs, update_metadata)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFPlone-5.2rc3-py3.7.egg/Products/CMFPlone/CatalogTool.py", line 351, in catalog_object
    update_metadata, pghandler=pghandler)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.ZCatalog-4.4-py3.7.egg/Products/ZCatalog/ZCatalog.py", line 498, in catalog_object
    update_metadata=update_metadata)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.ZCatalog-4.4-py3.7.egg/Products/ZCatalog/Catalog.py", line 338, in catalogObject
    index = self.updateMetadata(object, uid, None)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.ZCatalog-4.4-py3.7.egg/Products/ZCatalog/Catalog.py", line 289, in updateMetadata
    newDataRecord = self.recordify(object)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.ZCatalog-4.4-py3.7.egg/Products/ZCatalog/Catalog.py", line 424, in recordify
    attr = attr()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFDynamicViewFTI-6.0.1-py3.7.egg/Products/CMFDynamicViewFTI/browserdefault.py", line 77, in __call__
    return template()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.browserpage-4.3.0-py3.7.egg/zope/browserpage/simpleviewclass.py", line 41, in __call__
    return self.index(*args, **kw)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/Products/Five/browser/pagetemplatefile.py", line 125, in __call__
    return self.__func__(__self__, *args, **kw)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/Products/Five/browser/pagetemplatefile.py", line 60, in __call__
    sourceAnnotations=getattr(debug_flags, 'sourceAnnotations', 0),
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.pagetemplate-4.4.1-py3.7.egg/zope/pagetemplate/pagetemplate.py", line 135, in pt_render
    strictinsert=0, sourceAnnotations=sourceAnnotations
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/Products/PageTemplates/engine.py", line 90, in __call__
    return self.template.render(**kwargs)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/z3c.pt-3.2.0-py3.7.egg/z3c/pt/pagetemplate.py", line 173, in render
    return base_renderer(**context)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Chameleon-3.6.1-py3.7.egg/chameleon/zpt/template.py", line 306, in render
    return super(PageTemplate, self).render(**_kw)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Chameleon-3.6.1-py3.7.egg/chameleon/template.py", line 209, in render
    raise_with_traceback(exc, tb)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Chameleon-3.6.1-py3.7.egg/chameleon/utils.py", line 75, in raise_with_traceback
    raise exc
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Chameleon-3.6.1-py3.7.egg/chameleon/template.py", line 187, in render
    self._render(stream, econtext, rcontext)
  File "db171fe97358b08fd047cf0e2369cb30.py", line 1750, in render
  File "88010f8eff8761c572c5f6b77e8bcebb.py", line 676, in render_master
  File "88010f8eff8761c572c5f6b77e8bcebb.py", line 1250, in render_content
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/z3c.pt-3.2.0-py3.7.egg/z3c/pt/expressions.py", line 70, in render_content_provider
    cp.update()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.viewlet-4.2.1-py3.7.egg/zope/viewlet/manager.py", line 155, in update
    self._updateViewlets()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.viewlet-4.2.1-py3.7.egg/zope/viewlet/manager.py", line 161, in _updateViewlets
    viewlet.update()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.app.layout-3.1.3-py3.7.egg/plone/app/layout/viewlets/content.py", line 55, in update
    self.actions = self.context_state.actions('document_actions')
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.memoize-2.0.1-py3.7.egg/plone/memoize/view.py", line 48, in memogetter
    value = cache[key] = func(*args, **kwargs)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.app.layout-3.1.3-py3.7.egg/plone/app/layout/globals/context.py", line 246, in actions
    max=max,
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFPlone-5.2rc3-py3.7.egg/Products/CMFPlone/ActionsTool.py", line 85, in listActionInfos
    if check_condition and not ai['available']:
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.7.egg/Products/CMFCore/ActionInformation.py", line 212, in __getitem__
    value = self.data[key] = value(self._ec)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFCore-2.4.0b8-py3.7.egg/Products/CMFCore/Expression.py", line 53, in __call__
    res = compiled(econtext)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.tales-4.3-py3.7.egg/zope/tales/expressions.py", line 234, in __call__
    return self._eval(econtext)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/Products/PageTemplates/Expressions.py", line 152, in _eval
    ob = self._subexprs[-1](econtext)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.tales-4.3-py3.7.egg/zope/tales/expressions.py", line 139, in _eval
    ob = self._traverser(ob, element, econtext)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/Products/PageTemplates/Expressions.py", line 77, in boboAwareZopeTraverse
    object = object.restrictedTraverse(name)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/OFS/Traversable.py", line 366, in restrictedTraverse
    return self.unrestrictedTraverse(path, default, restricted=True)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/OFS/Traversable.py", line 349, in unrestrictedTraverse
    raise e
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Zope-4.0b10-py3.7.egg/OFS/Traversable.py", line 300, in unrestrictedTraverse
    next = obj[name]
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.folder-3.0.0-py3.7.egg/plone/folder/ordered.py", line 241, in __getitem__
    raise KeyError(key)
KeyError: 'externalEditorEnabled'

 - Expression: "provider:plone.belowcontentbody"
 - Filename:   ... egg/Products/CMFPlone/browser/templates/main_template.pt
 - Location:   (line 100: col 70)
 - Source:     ... 
                                     ^
 - Expression: "context/@@main_template/macros/master"
 - Filename:   ... .egg/plone/app/contenttypes/browser/templates/listing.pt
 - Location:   (line 6: col 21)
 - Source:     ... tal:use-macro="context/@@main_template/macros/master"
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 - Expression: "provider:plone.mainnavigation"
 - Filename:   ... egg/Products/CMFPlone/browser/templates/main_template.pt
 - Location:   (line 57: col 59)
 - Source:     ... er:plone.portaltop" />
                                      ^
 - Expression: "context/@@main_template/macros/master"
 - Filename:   ... .egg/plone/app/contenttypes/browser/templates/listing.pt
 - Location:   (line 6: col 21)
 - Source:     ... tal:use-macro="context/@@main_template/macros/master"
                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 - Arguments:  template: <ViewPageTemplateFile - at 0x7fc90eb93278>
               options: {...} (0)
               args: <tuple - at 0x7fc95bf1f048>
               nothing: <NoneType - at 0x5607b13d9820>
               modules: <_SecureModuleImporter - at 0x7fc9537f6cc0>
               request: <HTTPRequest - at 0x7fc94f18eac8>
               view: <SimpleViewClass from /home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/plone.app.contenttypes-2.0.5-py3.7.egg/plone/app/contenttypes/browser/templates/listing.pt listing_view at 0x7fc912f5be48>
               context: <ImplicitAcquisitionWrapper diploma at 0x7fc9124e0990>
               views: <ViewMapper - at 0x7fc912f5ba20>
               here: <ImplicitAcquisitionWrapper diploma at 0x7fc9124e0990>
               container: <ImplicitAcquisitionWrapper diploma at 0x7fc9124e0990>
               root: <ImplicitAcquisitionWrapper  at 0x7fc9471ef678>
               traverse_subpath: <list - at 0x7fc90a91d288>
               user: <UnrestrictedUser - at 0x7fc95444b5f8>
               default: <object - at 0x7fc95befaa60>
               repeat: {...} (0)
               loop: {...} (1)
               wrapped_repeat: <SafeMapping - at 0x7fc90a937988>
               target_language: <NoneType - at 0x5607b13d9820>
               translate: <function translate at 0x7fc91b3802f0>
               macroname: master

So your KeyError externalEditorEnabled was masked by the CMFDynamicViewFTI and the Python recursion problem?

So your KeyError externalEditorEnabled was masked by the CMFDynamicViewFTI and the Python recursion problem?

I am still confused.. Situation: after a plone.restapi test migration we encountered an inconsisten portal_lexicon. As a solution I tried the full catalog rebuild (without setSite()) causing the stack issues. A full rebuild with setSite() causes the error with externalEditorEnabled enabled on one particular object. Needs further investigation because we use nothing special in our setup, in particular no usage of External Editor...

Question is, why is Layout None? This must not happen, right?

Wild guess: https://github.com/plone/Products.CMFDynamicViewFTI/blob/master/Products/CMFDynamicViewFTI/fti.py#L154

Released Products.CMFDynamicViewFTI 6.0.2 with this fix.

@pbauer Any chance this fixes that recursion bug we were looking at in Sorrento?

@esteele I strongly doubt that, it seems toally unrelated to https://github.com/plone/Products.CMFPlone/issues/2666

@esteele I strongly doubt that, it seems toally unrelated to #2666

I also don't see a relation. Obviously behavioral changes in Python 3 vs. Python 2 seem to cause recursion errors in various places which must be addressed. However the weird thing is that reproducible issues on one environment like Python 3.6/FC 26 are not reproducible on 3.7/Debian 9...no theory why...

Was this page helpful?
0 / 5 - 0 ratings

Related issues

skleinfeldt picture skleinfeldt  路  5Comments

hvelarde picture hvelarde  路  4Comments

MrTango picture MrTango  路  4Comments

zopyx picture zopyx  路  5Comments

cdw9 picture cdw9  路  6Comments