plone.app.blob迁移ATFile时的RuntimeError

时间:2013-03-06 10:05:18

标签: migration plone blob runtime-error

我正在进行blob迁移到3.2.1站点,我得到“RuntimeError:在调用Python对象错误时超出了最大递归深度。”在@@ blob-file-migration期间的某个文件上。

我发现了这个http://svn.eionet.europa.eu/projects/Zope/ticket/4190,看起来他们通过创建自定义迁移器解决了图像问题。

有任何线索吗?跟踪回溯。

  File "/home/simahawk/dev/plone/plone3/projx/src/plone.app.blob/src/plone/app/blob/content.py", line 113, in setFile
    mutator = self.getField('file').getMutator(self)
  File "/home/simahawk/dev/plone/plone3/buildout/eggs/Products.Archetypes-1.5.10-py2.4.egg/Products/Archetypes/BaseObject.py", line 241, in getField
    return self.Schema().get(key)
  File "/home/simahawk/dev/plone/plone3/buildout/eggs/Products.Archetypes-1.5.10-py2.4.egg/Products/Archetypes/BaseObject.py", line 828, in Schema
    schema = ISchema(self)
  File "/home/simahawk/dev/plone/plone3/projx/parts/zope2/lib/python/zope/app/component/hooks.py", line 96, in adapter_hook
    return siteinfo.adapter_hook(interface, object, name, default)
  File "/home/simahawk/dev/plone/plone3/buildout/eggs/archetypes.schemaextender-2.1.1-py2.4.egg/archetypes/schemaextender/extender.py", line 143, in cachingInstanceSchemaFactory
    key = IUUID(context, str(id(context)))
  File "/home/simahawk/dev/plone/plone3/projx/parts/zope2/lib/python/zope/app/component/hooks.py", line 96, in adapter_hook
    return siteinfo.adapter_hook(interface, object, name, default)
RuntimeError: maximum recursion depth exceeded in cmp
2013-03-06 10:16:49 INFO ATCT.migration Rolling back to last safe point

2 个答案:

答案 0 :(得分:0)

当使用Products.contentmigration从Plone 3.x迁移到Plone 4.x时,我得到了同样的错误。似乎plone.app.blob迁移中存在一个错误。我们进行了此自定义迁移以绕过递归错误:http://svn.eionet.europa.eu/projects/Zope/browser/trunk/Products.EEAPloneAdmin/trunk/Products/EEAPloneAdmin/Extensions/ImageFS2Image.py?rev=29656

答案 1 :(得分:0)

问题在于.schemaextender版本(2.1.1)。向下固定到1.6.0解决了这个问题。这也解决了3.3.5站点上的随机KeyError问题。我认为这与#12051#11396有关。看起来这些是较新版本的at.schemaextender的常见问题,但在包的自述文件中没有Plone 3.x的信息。