[Zope] Zope deadlocks with AttachmentField versions prior to 1.3.11

Matthew X. Economou xenophon at irtnog.org
Tue Dec 19 12:32:35 EST 2006


All,

As others have reported (e.g.,
http://www.nabble.com/AttachmentField-1.3.6,-PloneExFile-3.2.4-and-Plone
-2.5-rc3-t1805380.html), Zope hangs in
AttachmentField/PortalTransformsAttachment.py when accessing a
PloneExFile object (see the attached thread traceback dump).  One
reported fix is to elide a call to
AttachmentHandler.registerHandler(PortalTransformsAttachment) in
PortalTransformsAttachment.py.  In my case, I upgraded from
AttachmentField version 1.3.10 to 1.3.11, which was sufficient to
correct the deadlock.

I'm currently running PloneExFile 3.2.4, AttachmentField 1.3.11 (was
1.3.10), Plone 2.5.1, CMF 1.6.2, Zope 2.9.6, Five 1.3.7, and Python
2.4.3 on FreeBSD/i386 6.1-RELEASE-p6, in case any of that is relevant.

Best wishes,
Matthew

-- 
Every time Bruce Schneier smiles, an amateur cryptographer dies.
(http://geekz.co.uk/schneierfacts/fact/55)
-------------- next part --------------
Threads traceback dump at 2006-12-16 16:03:27

Thread 175359488 (GET /VirtualHostBase/http/web.irtnog.org:80/irtnog/VirtualHostRoot/Members/nonamerev/Clan33/Wheel):
  File "/usr/local/www/Zope29/lib/python/ZServer/PubCore/ZServerPublisher.py", line 23, in __init__
    response=response)
  File "/usr/local/www/Zope29/lib/python/ZPublisher/Publish.py", line 395, in publish_module
    environ, debug, request, response)
  File "/usr/local/www/Zope29/lib/python/ZPublisher/Publish.py", line 196, in publish_module_standard
    response = publish(request, module_name, after_list, debug=debug)
  File "/usr/local/www/Zope29/Products/PlacelessTranslationService/PatchStringIO.py", line 34, in new_publish
    x = Publish.old_publish(request, module_name, after_list, debug)
  File "/usr/local/www/Zope29/lib/python/ZPublisher/Publish.py", line 115, in publish
    request, bind=1)
  File "/usr/local/www/Zope29/lib/python/ZPublisher/mapply.py", line 88, in mapply
    if debug is not None: return debug(object,args,context)
  File "/usr/local/www/Zope29/lib/python/ZPublisher/Publish.py", line 41, in call_object
    result=apply(object,args) # Type s<cr> to step into published object.
  File "/usr/local/www/Zope29/Products/Archetypes/TemplateMixin.py", line 72, in __call__
    return v(context, context.REQUEST)
  File "/usr/local/www/Zope29/lib/python/Shared/DC/Scripts/Bindings.py", line 311, in __call__
    return self._bindAndExec(args, kw, None)
  File "/usr/local/www/Zope29/lib/python/Shared/DC/Scripts/Bindings.py", line 348, in _bindAndExec
    return self._exec(bound_data, args, kw)
  File "/usr/local/www/Zope29/Products/CMFCore/FSPageTemplate.py", line 195, in _exec
    result = self.pt_render(extra_context=bound_names)
  File "/usr/local/www/Zope29/Products/CMFCore/FSPageTemplate.py", line 134, in pt_render
    result = FSPageTemplate.inheritedAttribute('pt_render')(
  File "/usr/local/www/Zope29/lib/python/Products/PageTemplates/PageTemplate.py", line 104, in pt_render
    tal=not source, strictinsert=0)()
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 238, in __call__
    self.interpret(self.program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 749, in do_useMacro
    self.interpret(macro)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 457, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 442, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 437, in no_tag
    self.interpret(program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 780, in do_defineSlot
    self.interpret(block)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 457, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 442, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 437, in no_tag
    self.interpret(program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 728, in do_defineMacro
    self.interpret(macro)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 772, in do_defineSlot
    self.interpret(slot)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 457, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 442, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 437, in no_tag
    self.interpret(program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 715, in do_condition
    self.interpret(block)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 457, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 442, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 437, in no_tag
    self.interpret(program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 749, in do_useMacro
    self.interpret(macro)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 457, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 442, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 437, in no_tag
    self.interpret(program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 749, in do_useMacro
    self.interpret(macro)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 507, in do_setLocal_tal
    self.engine.setLocal(name, self.engine.evaluateValue(expr))
  File "/usr/local/www/Zope29/lib/python/Products/PageTemplates/TALES.py", line 221, in evaluate
    return expression(self)
  File "/usr/local/www/Zope29/lib/python/Products/PageTemplates/Expressions.py", line 185, in __call__
    return self._eval(econtext)
  File "/usr/local/www/Zope29/lib/python/Products/PageTemplates/Expressions.py", line 173, in _eval
    ob = self._subexprs[-1](econtext)
  File "/usr/local/www/Zope29/lib/python/Products/PageTemplates/ZRPythonExpr.py", line 47, in __call__
    return eval(code, g, {})
  File "Python expression "field.getIcon(here)"", line 1, in <expression>
  File "/var/www/zope/Products/AttachmentField/AttachmentField.py", line 285, in getIcon
    handler = self._getHandler(instance)
  File "/var/www/zope/Products/AttachmentField/AttachmentField.py", line 256, in _getHandler
    self, instance,
  File "/var/www/zope/Products/AttachmentField/AttachmentHandler.py", line 109, in getAttachmentHandler
    if contentType in hnd[1].getContentTypes(field, instance, ):
  File "/var/www/zope/Products/AttachmentField/PortalTransformsAttachment.py", line 141, in getContentTypes
    return self.getTransforms(field, instance, )['all_mimes']
  File "/var/www/zope/Products/AttachmentField/PortalTransformsAttachment.py", line 87, in getTransforms
    p = pt._findPath(mime, "text/html")
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 337, in _findPath
    return winner
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/Transform.py", line 186, in name
    def name(self):

Thread 174125568 (GET /VirtualHostBase/http/web.irtnog.org:80/irtnog/VirtualHostRoot/Members/nonamerev/Clan33/Wheel):
  File "/usr/local/www/Zope29/lib/python/ZServer/PubCore/ZServerPublisher.py", line 23, in __init__
    response=response)
  File "/usr/local/www/Zope29/lib/python/ZPublisher/Publish.py", line 395, in publish_module
    environ, debug, request, response)
  File "/usr/local/www/Zope29/lib/python/ZPublisher/Publish.py", line 196, in publish_module_standard
    response = publish(request, module_name, after_list, debug=debug)
  File "/usr/local/www/Zope29/Products/PlacelessTranslationService/PatchStringIO.py", line 34, in new_publish
    x = Publish.old_publish(request, module_name, after_list, debug)
  File "/usr/local/www/Zope29/lib/python/ZPublisher/Publish.py", line 115, in publish
    request, bind=1)
  File "/usr/local/www/Zope29/lib/python/ZPublisher/mapply.py", line 88, in mapply
    if debug is not None: return debug(object,args,context)
  File "/usr/local/www/Zope29/lib/python/ZPublisher/Publish.py", line 41, in call_object
    result=apply(object,args) # Type s<cr> to step into published object.
  File "/usr/local/www/Zope29/Products/Archetypes/TemplateMixin.py", line 72, in __call__
    return v(context, context.REQUEST)
  File "/usr/local/www/Zope29/lib/python/Shared/DC/Scripts/Bindings.py", line 311, in __call__
    return self._bindAndExec(args, kw, None)
  File "/usr/local/www/Zope29/lib/python/Shared/DC/Scripts/Bindings.py", line 348, in _bindAndExec
    return self._exec(bound_data, args, kw)
  File "/usr/local/www/Zope29/Products/CMFCore/FSPageTemplate.py", line 195, in _exec
    result = self.pt_render(extra_context=bound_names)
  File "/usr/local/www/Zope29/Products/CMFCore/FSPageTemplate.py", line 134, in pt_render
    result = FSPageTemplate.inheritedAttribute('pt_render')(
  File "/usr/local/www/Zope29/lib/python/Products/PageTemplates/PageTemplate.py", line 104, in pt_render
    tal=not source, strictinsert=0)()
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 238, in __call__
    self.interpret(self.program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 749, in do_useMacro
    self.interpret(macro)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 457, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 442, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 437, in no_tag
    self.interpret(program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 780, in do_defineSlot
    self.interpret(block)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 457, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 442, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 437, in no_tag
    self.interpret(program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 728, in do_defineMacro
    self.interpret(macro)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 772, in do_defineSlot
    self.interpret(slot)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 457, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 442, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 437, in no_tag
    self.interpret(program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 715, in do_condition
    self.interpret(block)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 457, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 442, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 437, in no_tag
    self.interpret(program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 749, in do_useMacro
    self.interpret(macro)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 457, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 442, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 437, in no_tag
    self.interpret(program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 749, in do_useMacro
    self.interpret(macro)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 507, in do_setLocal_tal
    self.engine.setLocal(name, self.engine.evaluateValue(expr))
  File "/usr/local/www/Zope29/lib/python/Products/PageTemplates/TALES.py", line 221, in evaluate
    return expression(self)
  File "/usr/local/www/Zope29/lib/python/Products/PageTemplates/ZRPythonExpr.py", line 47, in __call__
    return eval(code, g, {})
  File "Python expression "field.isIndexed(here)"", line 1, in <expression>
  File "/var/www/zope/Products/AttachmentField/AttachmentField.py", line 237, in isIndexed
    return not not self.getIndexableValue(instance)
  File "/var/www/zope/Products/AttachmentField/AttachmentField.py", line 220, in getIndexableValue
    handler = self._getHandler(instance)
  File "/var/www/zope/Products/AttachmentField/AttachmentField.py", line 256, in _getHandler
    self, instance,
  File "/var/www/zope/Products/AttachmentField/AttachmentHandler.py", line 109, in getAttachmentHandler
    if contentType in hnd[1].getContentTypes(field, instance, ):
  File "/var/www/zope/Products/AttachmentField/PortalTransformsAttachment.py", line 141, in getContentTypes
    return self.getTransforms(field, instance, )['all_mimes']
  File "/var/www/zope/Products/AttachmentField/PortalTransformsAttachment.py", line 87, in getTransforms
    p = pt._findPath(mime, "text/html")
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 337, in _findPath
    return winner
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/lib/python2.4/UserList.py", line 28, in __getitem__
    def __getitem__(self, i): return self.data[i]

Thread 172977664 (GET /VirtualHostBase/http/web.irtnog.org:80/irtnog/VirtualHostRoot/Members/nonamerev/Clan33/Wheel):
  File "/usr/local/www/Zope29/lib/python/ZServer/PubCore/ZServerPublisher.py", line 23, in __init__
    response=response)
  File "/usr/local/www/Zope29/lib/python/ZPublisher/Publish.py", line 395, in publish_module
    environ, debug, request, response)
  File "/usr/local/www/Zope29/lib/python/ZPublisher/Publish.py", line 196, in publish_module_standard
    response = publish(request, module_name, after_list, debug=debug)
  File "/usr/local/www/Zope29/Products/PlacelessTranslationService/PatchStringIO.py", line 34, in new_publish
    x = Publish.old_publish(request, module_name, after_list, debug)
  File "/usr/local/www/Zope29/lib/python/ZPublisher/Publish.py", line 115, in publish
    request, bind=1)
  File "/usr/local/www/Zope29/lib/python/ZPublisher/mapply.py", line 88, in mapply
    if debug is not None: return debug(object,args,context)
  File "/usr/local/www/Zope29/lib/python/ZPublisher/Publish.py", line 41, in call_object
    result=apply(object,args) # Type s<cr> to step into published object.
  File "/usr/local/www/Zope29/Products/Archetypes/TemplateMixin.py", line 72, in __call__
    return v(context, context.REQUEST)
  File "/usr/local/www/Zope29/lib/python/Shared/DC/Scripts/Bindings.py", line 311, in __call__
    return self._bindAndExec(args, kw, None)
  File "/usr/local/www/Zope29/lib/python/Shared/DC/Scripts/Bindings.py", line 348, in _bindAndExec
    return self._exec(bound_data, args, kw)
  File "/usr/local/www/Zope29/Products/CMFCore/FSPageTemplate.py", line 195, in _exec
    result = self.pt_render(extra_context=bound_names)
  File "/usr/local/www/Zope29/Products/CMFCore/FSPageTemplate.py", line 134, in pt_render
    result = FSPageTemplate.inheritedAttribute('pt_render')(
  File "/usr/local/www/Zope29/lib/python/Products/PageTemplates/PageTemplate.py", line 104, in pt_render
    tal=not source, strictinsert=0)()
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 238, in __call__
    self.interpret(self.program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 749, in do_useMacro
    self.interpret(macro)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 457, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 442, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 437, in no_tag
    self.interpret(program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 780, in do_defineSlot
    self.interpret(block)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 457, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 442, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 437, in no_tag
    self.interpret(program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 728, in do_defineMacro
    self.interpret(macro)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 772, in do_defineSlot
    self.interpret(slot)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 457, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 442, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 437, in no_tag
    self.interpret(program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 715, in do_condition
    self.interpret(block)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 457, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 442, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 437, in no_tag
    self.interpret(program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 749, in do_useMacro
    self.interpret(macro)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 457, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 442, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 437, in no_tag
    self.interpret(program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 749, in do_useMacro
    self.interpret(macro)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 507, in do_setLocal_tal
    self.engine.setLocal(name, self.engine.evaluateValue(expr))
  File "/usr/local/www/Zope29/lib/python/Products/PageTemplates/TALES.py", line 221, in evaluate
    return expression(self)
  File "/usr/local/www/Zope29/lib/python/Products/PageTemplates/ZRPythonExpr.py", line 47, in __call__
    return eval(code, g, {})
  File "Python expression "field.isIndexed(here)"", line 1, in <expression>
  File "/var/www/zope/Products/AttachmentField/AttachmentField.py", line 237, in isIndexed
    return not not self.getIndexableValue(instance)
  File "/var/www/zope/Products/AttachmentField/AttachmentField.py", line 220, in getIndexableValue
    handler = self._getHandler(instance)
  File "/var/www/zope/Products/AttachmentField/AttachmentField.py", line 256, in _getHandler
    self, instance,
  File "/var/www/zope/Products/AttachmentField/AttachmentHandler.py", line 109, in getAttachmentHandler
    if contentType in hnd[1].getContentTypes(field, instance, ):
  File "/var/www/zope/Products/AttachmentField/PortalTransformsAttachment.py", line 141, in getContentTypes
    return self.getTransforms(field, instance, )['all_mimes']
  File "/var/www/zope/Products/AttachmentField/PortalTransformsAttachment.py", line 87, in getTransforms
    p = pt._findPath(mime, "text/html")
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 337, in _findPath
    return winner
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result

Thread 173277184 (GET /VirtualHostBase/http/web.irtnog.org:80/irtnog/VirtualHostRoot/Members/nonamerev/Clan33/Wheel):
  File "/usr/local/www/Zope29/lib/python/ZServer/PubCore/ZServerPublisher.py", line 23, in __init__
    response=response)
  File "/usr/local/www/Zope29/lib/python/ZPublisher/Publish.py", line 395, in publish_module
    environ, debug, request, response)
  File "/usr/local/www/Zope29/lib/python/ZPublisher/Publish.py", line 196, in publish_module_standard
    response = publish(request, module_name, after_list, debug=debug)
  File "/usr/local/www/Zope29/Products/PlacelessTranslationService/PatchStringIO.py", line 34, in new_publish
    x = Publish.old_publish(request, module_name, after_list, debug)
  File "/usr/local/www/Zope29/lib/python/ZPublisher/Publish.py", line 115, in publish
    request, bind=1)
  File "/usr/local/www/Zope29/lib/python/ZPublisher/mapply.py", line 88, in mapply
    if debug is not None: return debug(object,args,context)
  File "/usr/local/www/Zope29/lib/python/ZPublisher/Publish.py", line 41, in call_object
    result=apply(object,args) # Type s<cr> to step into published object.
  File "/usr/local/www/Zope29/Products/Archetypes/TemplateMixin.py", line 72, in __call__
    return v(context, context.REQUEST)
  File "/usr/local/www/Zope29/lib/python/Shared/DC/Scripts/Bindings.py", line 311, in __call__
    return self._bindAndExec(args, kw, None)
  File "/usr/local/www/Zope29/lib/python/Shared/DC/Scripts/Bindings.py", line 348, in _bindAndExec
    return self._exec(bound_data, args, kw)
  File "/usr/local/www/Zope29/Products/CMFCore/FSPageTemplate.py", line 195, in _exec
    result = self.pt_render(extra_context=bound_names)
  File "/usr/local/www/Zope29/Products/CMFCore/FSPageTemplate.py", line 134, in pt_render
    result = FSPageTemplate.inheritedAttribute('pt_render')(
  File "/usr/local/www/Zope29/lib/python/Products/PageTemplates/PageTemplate.py", line 104, in pt_render
    tal=not source, strictinsert=0)()
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 238, in __call__
    self.interpret(self.program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 749, in do_useMacro
    self.interpret(macro)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 457, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 442, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 437, in no_tag
    self.interpret(program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 780, in do_defineSlot
    self.interpret(block)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 457, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 442, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 437, in no_tag
    self.interpret(program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 728, in do_defineMacro
    self.interpret(macro)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 772, in do_defineSlot
    self.interpret(slot)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 457, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 442, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 437, in no_tag
    self.interpret(program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 715, in do_condition
    self.interpret(block)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 457, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 442, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 437, in no_tag
    self.interpret(program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 749, in do_useMacro
    self.interpret(macro)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 457, in do_optTag_tal
    self.do_optTag(stuff)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 442, in do_optTag
    return self.no_tag(start, program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 437, in no_tag
    self.interpret(program)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 749, in do_useMacro
    self.interpret(macro)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 281, in interpret
    handlers[opcode](self, args)
  File "/usr/local/www/Zope29/lib/python/TAL/TALInterpreter.py", line 507, in do_setLocal_tal
    self.engine.setLocal(name, self.engine.evaluateValue(expr))
  File "/usr/local/www/Zope29/lib/python/Products/PageTemplates/TALES.py", line 221, in evaluate
    return expression(self)
  File "/usr/local/www/Zope29/lib/python/Products/PageTemplates/ZRPythonExpr.py", line 47, in __call__
    return eval(code, g, {})
  File "Python expression "field.isIndexed(here)"", line 1, in <expression>
  File "/var/www/zope/Products/AttachmentField/AttachmentField.py", line 237, in isIndexed
    return not not self.getIndexableValue(instance)
  File "/var/www/zope/Products/AttachmentField/AttachmentField.py", line 230, in getIndexableValue
    return ret
  File "/var/www/zope/Products/AttachmentField/AttachmentField.py", line 258, in _getHandler
    return handler
  File "/var/www/zope/Products/AttachmentField/AttachmentHandler.py", line 117, in getAttachmentHandler
    return dummy
  File "/var/www/zope/Products/AttachmentField/PortalTransformsAttachment.py", line 141, in getContentTypes
    return self.getTransforms(field, instance, )['all_mimes']
  File "/var/www/zope/Products/AttachmentField/PortalTransformsAttachment.py", line 98, in getTransforms
    return {
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 337, in _findPath
    return winner
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result
  File "/usr/local/www/Zope29/Products/PortalTransforms/TransformEngine.py", line 371, in _getPaths
    return result

End of dump


More information about the Zope mailing list