[Zope-dev] TCP CLOSE_WAIT leaks

Alan Milligan alan at balclutha.org
Wed Mar 29 11:32:58 EST 2006


I managed to get a DeadlockDebugger trace on this thing, it made very
interesting reading:

Thread -1578087504 (GET
/VirtualHostBase/http/www.last-bastion.net:80/BastionLedger/ledgerlist/Mail_1111338253076):
  File "/opt/zope2.8/lib/python/ZServer/PubCore/ZServerPublisher.py",
line 23, in __init__
    response=response)
  File "/opt/zope2.8/lib/python/ZPublisher/Publish.py", line 387, in
publish_module
    environ, debug, request, response)
  File "/opt/zope2.8/lib/python/ZPublisher/Publish.py", line 188, in
publish_module_standard
    response = publish(request, module_name, after_list, debug=debug)
  File
"/opt/zope2.8/lib/python/Products/PlacelessTranslationService/PatchStringIO.py",
line 51, in new_publish
    x = Publish.old_publish(request, module_name, after_list, debug)
  File "/opt/zope2.8/lib/python/ZPublisher/Publish.py", line 114, in publish
    request, bind=1)
  File "/opt/zope2.8/lib/python/ZPublisher/mapply.py", line 88, in mapply
    if debug is not None: return debug(object,args,context)
  File "/opt/zope2.8/lib/python/ZPublisher/Publish.py", line 40, in
call_object
    result=apply(object,args) # Type s<cr> to step into published object.
  File "/opt/zope2.8/lib/python/Shared/DC/Scripts/Bindings.py", line
311, in __call__
    return self._bindAndExec(args, kw, None)
  File "/opt/zope2.8/lib/python/Shared/DC/Scripts/Bindings.py", line
329, in _bindAndExec
    def _bindAndExec(self, args, kw, caller_namespace):
  File "/opt/zope2.8/lib/python/Shared/DC/Scripts/Bindings.py", line
348, in _bindAndExec
    return self._exec(bound_data, args, kw)
  File "/opt/zope2.8/lib/python/Products/CMFCore/FSPageTemplate.py",
line 195, in _exec
    result = self.pt_render(extra_context=bound_names)
  File "/opt/zope2.8/lib/python/Products/CMFCore/FSPageTemplate.py",
line 134, in pt_render
    result = FSPageTemplate.inheritedAttribute('pt_render')(
  File "/opt/zope2.8/lib/python/Products/PageTemplates/PageTemplate.py",
line 104, in pt_render
    tal=not source, strictinsert=0)()
  File "/opt/zope2.8/lib/python/TAL/TALInterpreter.py", line 202, in
__call__
    def __call__(self):
  File "/opt/zope2.8/lib/python/Products/PageTemplates/ZRPythonExpr.py",
line 47, in __call__
    return eval(code, g, {})
  File "Python expression "putils.createTopLevelTabs(actions)"", line 1,
in <expression>
  File "/opt/zope2.8/lib/python/Products/CMFPlone/PloneTool.py", line
701, in createTopLevelTabs
    default=data['name'])
  File
"/opt/zope2.8/lib/python/Products/CMFPlone/TranslationServiceTool.py",
line 35, in utranslate
    return utranslate(*args, **kw)
  File "/opt/zope2.8/lib/python/Products/CMFPlone/i18nl10n.py", line 53,
in utranslate
    return service.utranslate(*args, **kw)
  File
"/opt/zope2.8/lib/python/Products/PlacelessTranslationService/PlacelessTranslationService.py",
line 133, in utranslate
    if not service: return default
  File "/opt/zope2.8/lib/python/ZODB/Connection.py", line 704, in setstate
    self._setstate(obj)
  File "/opt/zope2.8/lib/python/ZODB/Connection.py", line 760, in _setstate
    self._reader.setGhostState(obj, p)
  File "/opt/zope2.8/lib/python/ZODB/serialize.py", line 495, in
setGhostState
    state = self.getState(pickle)
  File "/opt/zope2.8/lib/python/ZODB/serialize.py", line 488, in getState
    return unpickler.load()
  File "/opt/zope2.8/lib/python/ZODB/serialize.py", line 436, in
_persistent_load
    return self._conn.get(oid)
  File "/opt/zope2.8/lib/python/ZODB/Connection.py", line 216, in get
    return obj
  File "/opt/zope2.8/lib/python/ZEO/ClientStorage.py", line 746, in load
    return self.loadEx(oid, version)[:2]
  File "/opt/zope2.8/lib/python/ZEO/ClientStorage.py", line 781, in loadEx
    return data, tid, ver

*every* thread was block-waiting on zeo (from a wide range of different
Zope/Plone types)!  It looks to me like Apache has timed out, clearing
down it's end, Zope however is still having to wait for zeo which is
completely borked.

I've consequently ditched zeo and everything is again well-behaved.

Alan



More information about the Zope-Dev mailing list