Lineage branches / lineage stack overflow [RESOLVED]

@zopyx it looks like your branch has been merged to master, so can we delete the branch now? Also, any reason why we shouldn't update the classifier to reflect that it works with Plone 5.2?

I'm looking to see if lineage works with Plone 5.2 on Python 3.

https://github.com/collective/collective.lineage/tree/python3-ajung

My mistake: you already did update the classifiers for both Plone 5.2 and Python 3.6/3.7

It looks then that all that is missing is the release of 2.3 to PyPI, correct?

There is even an issue for a new release^^

1 Like

I'm getting stack overflows when adding pages or collections to a subsite, using the master branch. Will create an issue.

Hm, this is not behaving consistently... will check in a new build

It crashes the same way in a brand new vagrant (Plone 5.2, Python 3.7.3, Ubuntu 18.04.3 LTS)

<string>:387: DeprecationWarning: Using len() is deprecated. Use the `length` attribute for the size of the current page, which is what we return now. Use the `sequence_length` attribute for the size of the entire sequence.
Fatal Python error: Cannot recover from stack overflow.

Current thread 0x00007f9fb0d63700 (most recent call first):
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.interface-4.6.0-py3.7-linux-x86_64.egg/zope/interface/interface.py", line 525 in __hash__
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.interface-4.6.0-py3.7-linux-x86_64.egg/zope/interface/adapter.py", line 680 in _lookup
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 58 in _uncached_lookup
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.interface-4.6.0-py3.7-linux-x86_64.egg/zope/interface/registry.py", line 281 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.component-4.5-py3.7.egg/zope/component/_api.py", line 157 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/schema.py", line 58 in decorator
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.synchronize-1.0.3-py3.7.egg/plone/synchronize/decorator.py", line 9 in synchronized_function
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/content.py", line 127 in __get__
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/utils.py", line 15 in get_parent
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 114 in _recurse_to_site
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 159 in _wrap
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 60 in _uncached_lookup
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.interface-4.6.0-py3.7-linux-x86_64.egg/zope/interface/registry.py", line 281 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.component-4.5-py3.7.egg/zope/component/_api.py", line 157 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/schema.py", line 58 in decorator
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.synchronize-1.0.3-py3.7.egg/plone/synchronize/decorator.py", line 9 in synchronized_function
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/content.py", line 127 in __get__
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/utils.py", line 15 in get_parent
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 114 in _recurse_to_site
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 159 in _wrap
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 60 in _uncached_lookup
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.interface-4.6.0-py3.7-linux-x86_64.egg/zope/interface/registry.py", line 281 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.component-4.5-py3.7.egg/zope/component/_api.py", line 157 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/schema.py", line 58 in decorator
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.synchronize-1.0.3-py3.7.egg/plone/synchronize/decorator.py", line 9 in synchronized_function
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/content.py", line 127 in __get__
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/utils.py", line 15 in get_parent
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 114 in _recurse_to_site
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 159 in _wrap
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 60 in _uncached_lookup
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.interface-4.6.0-py3.7-linux-x86_64.egg/zope/interface/registry.py", line 281 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.component-4.5-py3.7.egg/zope/component/_api.py", line 157 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/schema.py", line 58 in decorator
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.synchronize-1.0.3-py3.7.egg/plone/synchronize/decorator.py", line 9 in synchronized_function
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/content.py", line 127 in __get__
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/utils.py", line 15 in get_parent
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 114 in _recurse_to_site
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 159 in _wrap
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 60 in _uncached_lookup
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.interface-4.6.0-py3.7-linux-x86_64.egg/zope/interface/registry.py", line 281 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.component-4.5-py3.7.egg/zope/component/_api.py", line 157 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/schema.py", line 58 in decorator
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.synchronize-1.0.3-py3.7.egg/plone/synchronize/decorator.py", line 9 in synchronized_function
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/content.py", line 127 in __get__
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/utils.py", line 15 in get_parent
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 114 in _recurse_to_site
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 159 in _wrap
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 60 in _uncached_lookup
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.interface-4.6.0-py3.7-linux-x86_64.egg/zope/interface/registry.py", line 281 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.component-4.5-py3.7.egg/zope/component/_api.py", line 157 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/schema.py", line 58 in decorator
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.synchronize-1.0.3-py3.7.egg/plone/synchronize/decorator.py", line 9 in synchronized_function
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/content.py", line 127 in __get__
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/utils.py", line 15 in get_parent
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 114 in _recurse_to_site
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 159 in _wrap
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 60 in _uncached_lookup
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.interface-4.6.0-py3.7-linux-x86_64.egg/zope/interface/registry.py", line 281 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.component-4.5-py3.7.egg/zope/component/_api.py", line 157 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/schema.py", line 58 in decorator
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.synchronize-1.0.3-py3.7.egg/plone/synchronize/decorator.py", line 9 in synchronized_function
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/content.py", line 127 in __get__
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/utils.py", line 15 in get_parent
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 114 in _recurse_to_site
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 159 in _wrap
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 60 in _uncached_lookup
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.interface-4.6.0-py3.7-linux-x86_64.egg/zope/interface/registry.py", line 281 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.component-4.5-py3.7.egg/zope/component/_api.py", line 157 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/schema.py", line 58 in decorator
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.synchronize-1.0.3-py3.7.egg/plone/synchronize/decorator.py", line 9 in synchronized_function
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/content.py", line 127 in __get__
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/utils.py", line 15 in get_parent
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 114 in _recurse_to_site
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 159 in _wrap
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 60 in _uncached_lookup
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.interface-4.6.0-py3.7-linux-x86_64.egg/zope/interface/registry.py", line 281 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.component-4.5-py3.7.egg/zope/component/_api.py", line 157 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/schema.py", line 58 in decorator
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.synchronize-1.0.3-py3.7.egg/plone/synchronize/decorator.py", line 9 in synchronized_function
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/content.py", line 127 in __get__
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/utils.py", line 15 in get_parent
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 114 in _recurse_to_site
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 159 in _wrap
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 60 in _uncached_lookup
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.interface-4.6.0-py3.7-linux-x86_64.egg/zope/interface/registry.py", line 281 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.component-4.5-py3.7.egg/zope/component/_api.py", line 157 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/schema.py", line 58 in decorator
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.synchronize-1.0.3-py3.7.egg/plone/synchronize/decorator.py", line 9 in synchronized_function
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/content.py", line 127 in __get__
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/utils.py", line 15 in get_parent
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 114 in _recurse_to_site
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 159 in _wrap
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 60 in _uncached_lookup
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.interface-4.6.0-py3.7-linux-x86_64.egg/zope/interface/registry.py", line 281 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.component-4.5-py3.7.egg/zope/component/_api.py", line 157 in queryUtility
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/schema.py", line 58 in decorator
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.synchronize-1.0.3-py3.7.egg/plone/synchronize/decorator.py", line 9 in synchronized_function
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/content.py", line 127 in __get__
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/utils.py", line 15 in get_parent
  File "/home/vagrant/Plone/buildout-cache/eggs/five.localsitemanager-3.2.2-py3.7.egg/five/localsitemanager/registry.py", line 114 in _recurse_to_site
  ...

Thread 0x00007f9fb1564700 (most recent call first):
  File "/home/vagrant/Plone/buildout-cache/eggs/Products.CMFCore-2.4.0-py3.7.egg/Products/CMFCore/DirectoryView.py", line 170 in _changed
  File "/home/vagrant/Plone/buildout-cache/eggs/Products.CMFCore-2.4.0-py3.7.egg/Products/CMFCore/DirectoryView.py", line 190 in getContents
  File "/home/vagrant/Plone/buildout-cache/eggs/Products.CMFCore-2.4.0-py3.7.egg/Products/CMFCore/DirectoryView.py", line 426 in __of__
  File "/home/vagrant/Plone/buildout-cache/eggs/Products.CMFCore-2.4.0-py3.7.egg/Products/CMFCore/SkinsContainer.py", line 69 in getSkinByPath
  File "/home/vagrant/Plone/buildout-cache/eggs/Products.CMFCore-2.4.0-py3.7.egg/Products/CMFCore/SkinsContainer.py", line 94 in getSkinByName
  File "/home/vagrant/Plone/buildout-cache/eggs/Products.CMFCore-2.4.0-py3.7.egg/Products/CMFCore/Skinnable.py", line 95 in getSkin
  File "/home/vagrant/Plone/buildout-cache/eggs/Products.CMFCore-2.4.0-py3.7.egg/Products/CMFCore/Skinnable.py", line 119 in changeSkin
  File "/home/vagrant/Plone/buildout-cache/eggs/Products.CMFCore-2.4.0-py3.7.egg/Products/CMFCore/Skinnable.py", line 164 in setupCurrentSkin
  File "/home/vagrant/Plone/buildout-cache/eggs/Products.CMFCore-2.4.0-py3.7.egg/Products/CMFCore/PortalObject.py", line 71 in __before_publishing_traverse__
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/ZPublisher/BeforeTraverse.py", line 105 in __call__
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/ZPublisher/BaseRequest.py", line 454 in traverse
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/ZPublisher/WSGIPublisher.py", line 243 in publish
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/ZPublisher/WSGIPublisher.py", line 337 in publish_module
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/ZPublisher/httpexceptions.py", line 30 in __call__
  File "/home/vagrant/Plone/buildout-cache/eggs/Paste-3.0.8-py3.7.egg/paste/translogger.py", line 69 in __call__
  File "/home/vagrant/Plone/buildout-cache/eggs/waitress-1.3.0-py3.7.egg/waitress/task.py", line 447 in execute
  File "/home/vagrant/Plone/buildout-cache/eggs/waitress-1.3.0-py3.7.egg/waitress/task.py", line 176 in service
  File "/home/vagrant/Plone/buildout-cache/eggs/waitress-1.3.0-py3.7.egg/waitress/channel.py", line 356 in service
  File "/home/vagrant/Plone/buildout-cache/eggs/waitress-1.3.0-py3.7.egg/waitress/task.py", line 89 in handler_thread
  File "/usr/lib/python3.7/threading.py", line 865 in run
  File "/usr/lib/python3.7/threading.py", line 917 in _bootstrap_inner
  File "/usr/lib/python3.7/threading.py", line 885 in _bootstrap

Thread 0x00007f9fb1d65700 (most recent call first):
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.synchronize-1.0.3-py3.7.egg/plone/synchronize/decorator.py", line 7 in synchronized_function
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/content.py", line 127 in __get__
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.interface-4.6.0-py3.7-linux-x86_64.egg/zope/interface/adapter.py", line 603 in subscribers
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.interface-4.6.0-py3.7-linux-x86_64.egg/zope/interface/registry.py", line 442 in subscribers
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.component-4.5-py3.7.egg/zope/component/_api.py", line 124 in subscribers
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.component-4.5-py3.7.egg/zope/component/event.py", line 36 in objectEventNotify
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.interface-4.6.0-py3.7-linux-x86_64.egg/zope/interface/adapter.py", line 607 in subscribers
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.interface-4.6.0-py3.7-linux-x86_64.egg/zope/interface/registry.py", line 442 in subscribers
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.component-4.5-py3.7.egg/zope/component/_api.py", line 124 in subscribers
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.component-4.5-py3.7.egg/zope/component/event.py", line 27 in dispatch
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.event-4.4-py3.7.egg/zope/event/__init__.py", line 32 in notify
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/Products/Five/component/__init__.py", line 62 in __call__
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/ZPublisher/BeforeTraverse.py", line 153 in __call__
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/ZPublisher/BeforeTraverse.py", line 111 in __call__
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/ZPublisher/BaseRequest.py", line 454 in traverse
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/ZPublisher/WSGIPublisher.py", line 243 in publish
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/ZPublisher/WSGIPublisher.py", line 337 in publish_module
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/ZPublisher/httpexceptions.py", line 30 in __call__
  File "/home/vagrant/Plone/buildout-cache/eggs/Paste-3.0.8-py3.7.egg/paste/translogger.py", line 69 in __call__
  File "/home/vagrant/Plone/buildout-cache/eggs/waitress-1.3.0-py3.7.egg/waitress/task.py", line 447 in execute
  File "/home/vagrant/Plone/buildout-cache/eggs/waitress-1.3.0-py3.7.egg/waitress/task.py", line 176 in service
  File "/home/vagrant/Plone/buildout-cache/eggs/waitress-1.3.0-py3.7.egg/waitress/channel.py", line 356 in service
  File "/home/vagrant/Plone/buildout-cache/eggs/waitress-1.3.0-py3.7.egg/waitress/task.py", line 89 in handler_thread
  File "/usr/lib/python3.7/threading.py", line 865 in run
  File "/usr/lib/python3.7/threading.py", line 917 in _bootstrap_inner
  File "/usr/lib/python3.7/threading.py", line 885 in _bootstrap

Thread 0x00007f9fb2566700 (most recent call first):
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.synchronize-1.0.3-py3.7.egg/plone/synchronize/decorator.py", line 7 in synchronized_function
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.dexterity-2.9.1-py3.7.egg/plone/dexterity/content.py", line 127 in __get__
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.interface-4.6.0-py3.7-linux-x86_64.egg/zope/interface/adapter.py", line 603 in subscribers
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.interface-4.6.0-py3.7-linux-x86_64.egg/zope/interface/registry.py", line 442 in subscribers
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.component-4.5-py3.7.egg/zope/component/_api.py", line 124 in subscribers
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.component-4.5-py3.7.egg/zope/component/event.py", line 36 in objectEventNotify
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.interface-4.6.0-py3.7-linux-x86_64.egg/zope/interface/adapter.py", line 607 in subscribers
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.interface-4.6.0-py3.7-linux-x86_64.egg/zope/interface/registry.py", line 442 in subscribers
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.component-4.5-py3.7.egg/zope/component/_api.py", line 124 in subscribers
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.component-4.5-py3.7.egg/zope/component/event.py", line 27 in dispatch
  File "/home/vagrant/Plone/buildout-cache/eggs/zope.event-4.4-py3.7.egg/zope/event/__init__.py", line 32 in notify
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/Products/Five/component/__init__.py", line 62 in __call__
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/ZPublisher/BeforeTraverse.py", line 153 in __call__
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/ZPublisher/BeforeTraverse.py", line 111 in __call__
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/ZPublisher/BaseRequest.py", line 454 in traverse
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/ZPublisher/WSGIPublisher.py", line 243 in publish
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/ZPublisher/WSGIPublisher.py", line 337 in publish_module
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/ZPublisher/httpexceptions.py", line 30 in __call__
  File "/home/vagrant/Plone/buildout-cache/eggs/Paste-3.0.8-py3.7.egg/paste/translogger.py", line 69 in __call__
  File "/home/vagrant/Plone/buildout-cache/eggs/waitress-1.3.0-py3.7.egg/waitress/task.py", line 447 in execute
  File "/home/vagrant/Plone/buildout-cache/eggs/waitress-1.3.0-py3.7.egg/waitress/task.py", line 176 in service
  File "/home/vagrant/Plone/buildout-cache/eggs/waitress-1.3.0-py3.7.egg/waitress/channel.py", line 356 in service
  File "/home/vagrant/Plone/buildout-cache/eggs/waitress-1.3.0-py3.7.egg/waitress/task.py", line 89 in handler_thread
  File "/usr/lib/python3.7/threading.py", line 865 in run
  File "/usr/lib/python3.7/threading.py", line 917 in _bootstrap_inner
  File "/usr/lib/python3.7/threading.py", line 885 in _bootstrap

Thread 0x00007f9fc3eb7740 (most recent call first):
  File "/home/vagrant/Plone/buildout-cache/eggs/waitress-1.3.0-py3.7.egg/waitress/wasyncore.py", line 152 in poll
  File "/home/vagrant/Plone/buildout-cache/eggs/waitress-1.3.0-py3.7.egg/waitress/wasyncore.py", line 222 in loop
  File "/home/vagrant/Plone/buildout-cache/eggs/waitress-1.3.0-py3.7.egg/waitress/server.py", line 307 in run
  File "/home/vagrant/Plone/buildout-cache/eggs/waitress-1.3.0-py3.7.egg/waitress/__init__.py", line 17 in serve
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.recipe.zope2instance-6.3.0-py3.7.egg/plone/recipe/zope2instance/ctl.py", line 905 in serve_paste
  File "/home/vagrant/Plone/buildout-cache/eggs/plone.recipe.zope2instance-6.3.0-py3.7.egg/plone/recipe/zope2instance/ctl.py", line 927 in serve
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/Zope2/Startup/serve.py", line 202 in serve
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/Zope2/Startup/serve.py", line 214 in run
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/Zope2/Startup/serve.py", line 248 in main
  File "/home/vagrant/Plone/buildout-cache/eggs/Zope-4.1.1-py3.7.egg/Zope2/Startup/serve.py", line 252 in <module>
  File "/home/vagrant/Plone/zinstance/parts/instance/bin/interpreter", line 274 in <module>

T. Kim Nguyen via Plone Community wrote at 2019-11-21 01:05 +0000:

It crashes the same way in a brand new vagrant (Plone 5.2, Python 3.7.3, Ubuntu 18.04.3 LTS)

:387: DeprecationWarning: Using len() is deprecated. Use the length attribute for the size of the current page, which is what we return now. Use the sequence_length attribute for the size of the entire sequence.
Fatal Python error: Cannot recover from stack overflow.
...
Apparently, we have an infinite call look here.
In this case, it apparently lets overflow the C runtime stack
(rather than tiggers Python's "MaximalRecursionExceeded" exception)
which causes the fatal error.

The loop seems to be composed of:

  • something looks up a (local persistent) utility, found
    by five.localsitemanager
    (five/localsitemanager/registry.py", line 60 in _uncached_lookup).
    localsitemanager wraps the utility

  • Because for the lineage case, current_site != registry_site,
    localsitemanager calls _recurse_to_site(current_site, registry_site)
    (five/localsitemanager/registry.py", line 159 in _wrap)

    This is the place where the "lineage" and "non lineage" cases
    differ

  • _recurse_to_site calls
    (via five/localsitemanager/utils.py", line 15 in get_parent)
    plone/dexterity/content.py", line 127 in get
    which indirectly (via
    plone/synchronize/decorator.py", line 9 in synchronized_function
    plone/dexterity/schema.py", line 58 in decorator
    zope/component/_api.py", line 157 in queryUtility)
    looks up a (local persistent) utility (found by five.localsitemanager).

Thus, while the problem pops up for lineage, it is not a lineage problem.
It can occur whenever current_site != registry_site, i.e.
whenever the Plone portal object it not the only relevant site in
the Plone portal. However, caching may hide the problem and may
let it occur (apparently) non deterministically.

In my view, the problem can be blamed either on
five.localsitemanager.LocalSiteManager._wrap
or plone.dexterity.content.FTIAwareSpecification.__get__ - in both
cases for insufficient handling of recursive use.

plone.dexterity.content.FTIAwareSpecification.__get__ seems
to be aware of problems caused by its recursive use.
Unfortunately, it sets up recursion monitoring only some lines after
line 127 (which introduces the recursion in our case).
Maybe, the easiest workaround would be to extend recursion monitoring
in __get__ to cover the current recursion.

2 Likes

The issue is described here: https://github.com/plone/plone.dexterity/pull/107
After that first attempt of solving the issue I also tested https://github.com/plone/plone.dexterity/pull/108
But I think https://github.com/plone/plone.dexterity/pull/114 make the previous PRs obsolete.

So I would check if using plone.dexterity master fixes the issue.

1 Like

@alert called it! And @rpatterson created a test to confirm the fix, which has been merged into dexterity

:heart:

The fix is to pin plone.dexterity to 2.9.2

1 Like