[Zope] Zope hangs
Nico Grubert
nicogrubert at gmail.com
Thu Oct 9 04:17:38 EDT 2008
> If your tracebacks are reliable, then neither of these entries
> should cause "hanging" (apart from this: CPU usage of about 100 percent
> does not indicate hanging but some other problem).
>
> Tracebacks do not need to be reliable. They can be unreliable when the
> the "*.pyc/*.pyo" files do not correspond to the source. Therefore,
> an initial step may be to delete all "*.pyc/*.pyo" files and try again.
>
> There is one case when "hanging" could apparently happen
> in a "return": the operation before takes a long time and does not release
> the GIL. Then, the deadlock debugger will get active only when the operation
> finished -- and then sees an apparently harmless operation (such as a "return").
>
> We have had severe garbage collection problems (GC, too, holds the GIL
> for a long time). To detect such problems, we have added a GIL monitor
> to our system. This is an additional thread running in the system
> which schedules itself at regular times and measures the difference
> between the expected scheduling time and the actual activation time.
> If the difference is too large, this is logged.
>
>
> If your system gets slow but still occasionally responds, you can
> use "ZopeProfiler" to find out, where the time is spend.
> Ensure to use "real time" as the timer (not cpu time).
Hi Dieter
thank you very much for the information.
This morning the server did not respond and all 8 threads in the
DeadlockDebugger's output look the same:
Thread 1098918208
File
"/usr/local/Zope-2.10.5/lib/python/ZServer/PubCore/ZServerPublisher.py",
line 25, in __init__
response=b)
File "/usr/local/Zope-2.10.5/lib/python/ZPublisher/Publish.py", line
401, in publish_module
environ, debug, request, response)
File "/usr/local/Zope-2.10.5/lib/python/ZPublisher/Publish.py", line
202, in publish_module_standard
response = publish(request, module_name, after_list, debug=debug)
File
"/zope/intranet/Products/PlacelessTranslationService/PatchStringIO.py",
line 51, in new_publish
x = Publish.old_publish(request, module_name, after_list, debug)
File "/usr/local/Zope-2.10.5/lib/python/ZPublisher/Publish.py", line
119, in publish
request, bind=1)
File "/usr/local/Zope-2.10.5/lib/python/ZPublisher/mapply.py", line
88, in mapply
if debug is not None: return debug(object,args,context)
File "/usr/local/Zope-2.10.5/lib/python/ZPublisher/Publish.py", line
42, in call_object
result=apply(object,args) # Type s<cr> to step into published object.
File
"/usr/local/Zope-2.10.5/lib/python/Shared/DC/Scripts/Bindings.py", line
313, in __call__
return self._bindAndExec(args, kw, None)
File
"/usr/local/Zope-2.10.5/lib/python/Shared/DC/Scripts/Bindings.py", line
350, in _bindAndExec
return self._exec(bound_data, args, kw)
File
"/usr/local/Zope-2.10.5/lib/python/Products/PythonScripts/PythonScript.py",
line 327, in _exec
result = f(*args, **kw)
File "Script (Python)", line 20, in index_html
File
"/usr/local/Zope-2.10.5/lib/python/Shared/DC/Scripts/Bindings.py", line
313, in __call__
return self._bindAndExec(args, kw, None)
File
"/usr/local/Zope-2.10.5/lib/python/Shared/DC/Scripts/Bindings.py", line
350, in _bindAndExec
return self._exec(bound_data, args, kw)
File
"/usr/local/Zope-2.10.5/lib/python/Products/PageTemplates/ZopePageTemplate.py",
line 330, in _exec
result = self.pt_render(extra_context=bound_names)
File
"/usr/local/Zope-2.10.5/lib/python/Products/PageTemplates/ZopePageTemplate.py",
line 426, in pt_render
result = PageTemplate.pt_render(self, source, extra_context)
File "/zope/wwnet/Products/PTProfiler/ProfilerPatch.py", line 66, in
__patched_render__
ret = self._patching_class._org_method(self, source, extra_context)
File
"/usr/local/Zope-2.10.5/lib/python/Products/PageTemplates/PageTemplate.py",
line 89, in pt_render
return super(PageTemplate, self).pt_render(c, source=source)
File
"/usr/local/Zope-2.10.5/lib/python/zope/pagetemplate/pagetemplate.py",
line 117, in pt_render
strictinsert=0, sourceAnnotations=sourceAnnotations)()
File "/usr/local/Zope-2.10.5/lib/python/zope/tal/talinterpreter.py",
line 271, in __call__
self.interpret(self.program)
File "/usr/local/Zope-2.10.5/lib/python/zope/tal/talinterpreter.py",
line 346, in interpret
handlers[opcode](self, args)
File "/usr/local/Zope-2.10.5/lib/python/zope/tal/talinterpreter.py",
line 891, in do_useMacro
self.interpret(macro)
File "/usr/local/Zope-2.10.5/lib/python/zope/tal/talinterpreter.py",
line 346, in interpret
handlers[opcode](self, args)
File "/usr/local/Zope-2.10.5/lib/python/zope/tal/talinterpreter.py",
line 949, in do_defineSlot
self.interpret(slot)
File "/usr/local/Zope-2.10.5/lib/python/zope/tal/talinterpreter.py",
line 346, in interpret
handlers[opcode](self, args)
File "/usr/local/Zope-2.10.5/lib/python/zope/tal/talinterpreter.py",
line 534, in do_optTag_tal
self.no_tag(stuff[-2], stuff[-1])
File "/usr/local/Zope-2.10.5/lib/python/zope/tal/talinterpreter.py",
line 516, in no_tag
self.interpret(program)
File "/usr/local/Zope-2.10.5/lib/python/zope/tal/talinterpreter.py",
line 346, in interpret
handlers[opcode](self, args)
File "/usr/local/Zope-2.10.5/lib/python/zope/tal/talinterpreter.py",
line 855, in do_condition
self.interpret(block)
File "/usr/local/Zope-2.10.5/lib/python/zope/tal/talinterpreter.py",
line 346, in interpret
handlers[opcode](self, args)
File "/usr/local/Zope-2.10.5/lib/python/zope/tal/talinterpreter.py",
line 536, in do_optTag_tal
self.do_optTag(stuff)
File "/usr/local/Zope-2.10.5/lib/python/zope/tal/talinterpreter.py",
line 521, in do_optTag
return self.no_tag(start, program)
File "/usr/local/Zope-2.10.5/lib/python/zope/tal/talinterpreter.py",
line 516, in no_tag
self.interpret(program)
File "/usr/local/Zope-2.10.5/lib/python/zope/tal/talinterpreter.py",
line 346, in interpret
handlers[opcode](self, args)
File "/usr/local/Zope-2.10.5/lib/python/zope/tal/talinterpreter.py",
line 586, in do_setLocal_tal
self.engine.setLocal(name, self.engine.evaluateValue(expr))
File "/usr/local/Zope-2.10.5/lib/python/zope/tales/tales.py", line
696, in evaluate
return expression(self)
File "/zope/wwnet/Products/PTProfiler/ProfilerPatch.py", line 25, in
__patched_call__
ret = self._patching_class._org_method(self, econtext)
File
"/usr/local/Zope-2.10.5/lib/python/Products/PageTemplates/ZRPythonExpr.py",
line 49, in __call__
return eval(self._code, vars, {})
File "PythonExpr", line 1, in <expression>
File
"/usr/local/Zope-2.10.5/lib/python/Shared/DC/Scripts/Bindings.py", line
313, in __call__
return self._bindAndExec(args, kw, None)
File
"/usr/local/Zope-2.10.5/lib/python/Shared/DC/Scripts/Bindings.py", line
350, in _bindAndExec
return self._exec(bound_data, args, kw)
File
"/usr/local/Zope-2.10.5/lib/python/Products/PythonScripts/PythonScript.py",
line 327, in _exec
result = f(*args, **kw)
File "Script (Python)", line 109, in get_navigation_items
File
"/usr/local/Zope-2.10.5/lib/python/Shared/DC/Scripts/Bindings.py", line
313, in __call__
return self._bindAndExec(args, kw, None)
File
"/usr/local/Zope-2.10.5/lib/python/Shared/DC/Scripts/Bindings.py", line
350, in _bindAndExec
return self._exec(bound_data, args, kw)
File
"/usr/local/Zope-2.10.5/lib/python/Products/PythonScripts/PythonScript.py",
line 327, in _exec
result = f(*args, **kw)
File "Script (Python)", line 31, in getSubdocumentsIncludingGhosts
File "/zope/intranet/Products/Silva/Folder.py", line 718, in
get_public_tree
self._get_public_tree_helper(l, 0, depth)
File "/zope/intranet/Products/Silva/Folder.py", line 768, in
_get_public_tree_helper
if self.service_toc_filter.filter(item):
File "/zope/intranet/Products/Silva/tocfilter.py", line 36, in filter
return False
File "/zope/intranet/Products/Silva/tocfilter.py", line 19, in
hideFromTOC
return context.service_metadata.getMetadataValue(
File "/zope/intranet/Products/SilvaMetadata/MetadataTool.py", line
180, in getMetadataValue
return binding.get(set_id, element_id)
File "/zope/intranet/Products/SilvaMetadata/Binding.py", line 301, in get
return data.get(element_id)
File "/zope/intranet/Products/SilvaMetadata/Binding.py", line 500, in
_getData
return data
File "/zope/intranet/Products/SilvaMetadata/Element.py", line 207, in
getDefault
return self.field.get_value('default', content=content)
File "/zope/intranet/Products/Formulator/Field.py", line 142, in
get_value
return value
File "/zope/intranet/Products/Formulator/TALESField.py", line 44, in
__call__
return getEngine().getContext(kw).evaluate(expr)
File "/usr/local/Zope-2.10.5/lib/python/zope/tales/tales.py", line
696, in evaluate
return expression(self)
File "/zope/wwnet/Products/PTProfiler/ProfilerPatch.py", line 31, in
__patched_call__
return ret
File
"/usr/local/Zope-2.10.5/lib/python/Products/PageTemplates/ZRPythonExpr.py",
line 49, in __call__
return eval(self._code, vars, {})
File "PythonExpr", line 1, in <expression>
File "/zope/intranet/Products/Silva/Security.py", line 272, in
sec_get_creator_info
return self.sec_get_member(self.getOwner().getId())
File "/zope/intranet/Products/Silva/Security.py", line 227, in
sec_get_member
return self.service_members.get_cached_member(userid)
File "/zope/intranet/Products/Silva/SimpleMembership.py", line 193,
in get_cached_member
return cloneMember(self.get_member(userid)).__of__(self)
File "/zope/intranet/Products/Silva/SimpleMembership.py", line 187,
in get_member
return member
File "/zope/intranet/Products/Silva/SimpleMembership.py", line 174,
in is_user
return userid in self.get_valid_userids()
File "/usr/local/Zope-2.10.5/lib/python/AccessControl/Role.py", line
360, in get_valid_userids
return tuple(keys)
File "/usr/local/Zope-2.10.5/lib/python/AccessControl/User.py", line
984, in user_names
return self.getUserNames()
File "/zope/intranet/Products/LDAPUserFolder/LDAPUserFolder.py", line
576, in getUserNames
return self._misc_cache().get('loginlist')
File "/zope/intranet/Products/LDAPUserFolder/LDAPUserFolder.py", line
1846, in _misc_cache
return getResource('%s-misc_cache' % self._hash, SharedObject, ())
File "/zope/intranet/Products/LDAPUserFolder/SharedResource.py", line
50, in getResource
_ResourceLock.release()
I am not sure if all the problems are caused by the LDAPUserfolder.
Regards
Nico
More information about the Zope
mailing list