[Zope] Troubleshooting Zope 100% CPU utilization
Matthew X. Economou
xenophon at irtnog.org
Tue Mar 15 16:20:27 EST 2005
All,
I was able to get DeadlockDebugger working. I think my initial
threadframe installation was corrupt, but re-installing both threadframe
and DeadlockDebugger seemed to fix any issues there. With the following
output, do I have enough information to go to someone with a bug report?
At this point it seems Zope isn't the problem, but I want to know if
there is any other information I can glean before reporting a bug in
LDAPUserFolders or python-ldap.
So: I have a spinning Zope and the DeadlockDebugger output. The last
few lines of each thread look like:
File "/var/www/zope/Products/LDAPUserFolder/SharedResource.py",
line 110, in __call__
self._lock.acquire()
File "/usr/local/lib/python2.4/threading.py", line 100, in acquire
rc = self.__block.acquire(blocking)
One thread is stuck here (possible race condition?):
File "/usr/local/lib/python2.4/site-packages/ldap/ldapobject.py",
line 169, in simple_bind
return
self._ldap_call(self._l.simple_bind,who,cred,serverctrls,clientctrls)
File "/usr/local/lib/python2.4/site-packages/ldap/ldapobject.py",
line 91, in _ldap_call
self._ldap_object_lock.acquire()
And finally, one thread is stuck here:
File "/var/www/zope/Products/LDAPUserFolder/LDAPDelegate.py", line
292, in _connect
connection.simple_bind_s(user_dn, user_pwd)
File "/usr/local/lib/python2.4/site-packages/ldap/ldapobject.py",
line 760, in simple_bind_s
return SimpleLDAPObject.simple_bind_s(self,*args,**kwargs)
File "/usr/local/lib/python2.4/site-packages/ldap/ldapobject.py",
line 176, in simple_bind_s
self.result(msgid,all=1,timeout=self.timeout)
File "/usr/local/lib/python2.4/site-packages/ldap/ldapobject.py",
line 399, in result
res_type,res_data,res_msgid = self.result2(msgid,all,timeout)
File "/usr/local/lib/python2.4/site-packages/ldap/ldapobject.py",
line 405, in result2
return self._ldap_call(self._l.result2,msgid,all,timeout)
File "/usr/local/lib/python2.4/site-packages/ldap/ldapobject.py",
line 94, in _ldap_call
result = func(*args,**kwargs)
What do these thread backtraces show?
What additional information can I gather?
Best wishes,
Matthew
--
"The challenge of a moral life is to do nothing that requires
forgiveness." - Roger Ebert in his review of _The Woodsman_
More information about the Zope
mailing list