100% CPU utilization in Zope after LDAP connection timeout
Matthew X. Economou
xenophon at irtnog.org
Wed Mar 16 23:21:14 CET 2005
I think there's a problem with python-ldap on FreeBSD/alpha that
causes a thread with an LDAP connection to get stuck in a CLOSE_WAIT
state. I am unsure how to further troubleshoot this problem.
After running properly for about an hour or two (including correctly
authenticating users), my Zope instance stops responding to HTTP
requests and begins consuming all available CPU time. A back-trace in
GDB showed Zope spinning around a call to select(2) within the
OpenLDAP client library. A packet capture of all of the LDAP traffic
generated by the Zope instance showed a FIN/ACK from Zope, the
corresponding ACK from the server, a FIN/ACK from the server, but
never the corresponding ACK from Zope; these LDAP connections persist
indefinitely in a CLOSE_WAIT state. Using DeadlockDebugger and
threadtrace, I generated Python traceback dumps of the threads; these
are included below.
I see the same problem (LDAP connections stuck in CLOSE_WAIT) both
under Python 2.3 and Python 2.4. I upgraded Python hoping that
improvements made to its threading implementation would correct what
appears to be a deadlock or race condition within python-ldap or its
caller. Python 2.4 does seem to be better able to handle the
aftereffects of the race: Zope no longer becomes completely
unresponsive (e.g. the top-level ZMI works).
Other programs on my web server that use the OpenLDAP client libraries
are not exhibiting this behavior, e.g. Samba 3.0.11 (winbindd).
Specs:
Digital AlphaServer 2000 5/250
FreeBSD/alpha 5.3-RELEASE
Python 2.4
Zope 2.7.4
Plone 2.0.5
Threads traceback dump at 2005-03-15 16:12:55:
Thread 4871774208 (GET
/VirtualHostBase/http/web.irtnog.org:80/irtnog/VirtualHostRoot/Members/x
enophon/freebsd/install):
File
"/usr/local/www/Zope/lib/python/ZServer/PubCore/ZServerPublisher.py",
line 23, in __init__
response=response)
File "/usr/local/www/Zope/lib/python/ZPublisher/Publish.py", line 384,
in publish_module
environ, debug, request, response)
File "/usr/local/www/Zope/lib/python/ZPublisher/Publish.py", line 175,
in publish_module_standard
response = publish(request, module_name, after_list, debug=debug)
File
"/usr/local/www/zope/Products/PlacelessTranslationService/PatchStringIO.
py", line 51, in new_publish
x = Publish.old_publish(request, module_name, after_list, debug)
File "/usr/local/www/Zope/lib/python/ZPublisher/Publish.py", line 101,
in publish
request, bind=1)
File "/usr/local/www/Zope/lib/python/ZPublisher/mapply.py", line 88,
in mapply
if debug is not None: return debug(object,args,context)
File "/usr/local/www/Zope/lib/python/ZPublisher/Publish.py", line 39,
in call_object
result=apply(object,args) # Type s<cr> to step into published
object.
File "/usr/local/www/zope/Products/CMFCore/PortalContent.py", line
116, in __call__
return view()
File "/usr/local/www/Zope/lib/python/Shared/DC/Scripts/Bindings.py",
line 306, in __call__
return self._bindAndExec(args, kw, None)
File "/usr/local/www/Zope/lib/python/Shared/DC/Scripts/Bindings.py",
line 343, in _bindAndExec
return self._exec(bound_data, args, kw)
File "/usr/local/www/zope/Products/CMFCore/FSPageTemplate.py", line
191, in _exec
result = self.pt_render(extra_context=bound_names)
File "/usr/local/www/zope/Products/CMFCore/FSPageTemplate.py", line
124, in pt_render
result = FSPageTemplate.inheritedAttribute('pt_render')(
File
"/usr/local/www/Zope/lib/python/Products/PageTemplates/PageTemplate.py",
line 96, in pt_render
tal=not source, strictinsert=0)()
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 190,
in __call__
self.interpret(self.program)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 234,
in interpret
handlers[opcode](self, args)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 671,
in do_useMacro
self.interpret(macro)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 234,
in interpret
handlers[opcode](self, args)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 409,
in do_optTag_tal
self.do_optTag(stuff)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 394,
in do_optTag
return self.no_tag(start, program)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 389,
in no_tag
self.interpret(program)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 234,
in interpret
handlers[opcode](self, args)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 671,
in do_useMacro
self.interpret(macro)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 234,
in interpret
handlers[opcode](self, args)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 460,
in do_setLocal_tal
self.engine.setLocal(name, self.engine.evaluateValue(expr))
File "/usr/local/www/Zope/lib/python/Products/PageTemplates/TALES.py",
line 221, in evaluate
return expression(self)
File
"/usr/local/www/Zope/lib/python/Products/PageTemplates/Expressions.py",
line 201, in __call__
return self._eval(econtext)
File
"/usr/local/www/Zope/lib/python/Products/PageTemplates/Expressions.py",
line 196, in _eval
return render(ob, econtext.vars)
File
"/usr/local/www/Zope/lib/python/Products/PageTemplates/Expressions.py",
line 95, in render
ob = call_with_ns(ob.__render_with_namespace__, ns)
File
"/usr/local/www/Zope/lib/python/Products/PageTemplates/ZRPythonExpr.py",
line 73, in call_with_ns
return f(td)
File "/usr/local/www/zope/Products/CMFCore/FSPythonScript.py", line
99, in __render_with_namespace__
return Script.__render_with_namespace__(self, namespace)
File "/usr/local/www/Zope/lib/python/Shared/DC/Scripts/Bindings.py",
line 320, in __render_with_namespace__
return self._bindAndExec((), namevals, namespace)
File "/usr/local/www/Zope/lib/python/Shared/DC/Scripts/Bindings.py",
line 343, in _bindAndExec
return self._exec(bound_data, args, kw)
File "/usr/local/www/zope/Products/CMFCore/FSPythonScript.py", line
160, in _exec
result = apply(f, args, kw)
File "Script (Python)", line 30, in listMetaTags
File "/usr/local/www/zope/Products/CMFDefault/DublinCore.py", line
106, in Creator
owner = self.getOwner()
File "/usr/local/www/Zope/lib/python/AccessControl/Owned.py", line 94,
in getOwner
user = udb.getUserById(oid, None)
File
"/usr/local/www/zope/Products/GroupUserFolder/GroupUserFolder.py", line
336, in getUserById
ret = self.getUser(id, __force_group_id__ = 1)
File
"/usr/local/www/zope/Products/GroupUserFolder/GroupUserFolder.py", line
317, in getUser
u = src.getUser(name)
File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line
783, in getUser
user = self.getUserByAttr(self._login_attr, name, pwd, cache=1)
File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line
714, in getUserByAttr
user_roles, user_dn, user_attrs = self._lookupuserbyattr(
File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line
305, in _lookupuserbyattr
, bind_pwd=bind_pwd
File "/var/www/zope/Products/LDAPUserFolder/LDAPDelegate.py", line
318, in search
connection = self.connect(bind_dn=bind_dn, bind_pwd=bind_pwd)
File "/var/www/zope/Products/LDAPUserFolder/LDAPDelegate.py", line
195, in connect
conn.simple_bind_s(user_dn, user_pwd)
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)
Thread 4913403904 (GET
/VirtualHostBase/http/web.irtnog.org:80/irtnog/VirtualHostRoot/Members/x
enophon/freebsd/winbind):
File
"/usr/local/www/Zope/lib/python/ZServer/PubCore/ZServerPublisher.py",
line 23, in __init__
response=response)
File "/usr/local/www/Zope/lib/python/ZPublisher/Publish.py", line 384,
in publish_module
environ, debug, request, response)
File "/usr/local/www/Zope/lib/python/ZPublisher/Publish.py", line 175,
in publish_module_standard
response = publish(request, module_name, after_list, debug=debug)
File
"/usr/local/www/zope/Products/PlacelessTranslationService/PatchStringIO.
py", line 51, in new_publish
x = Publish.old_publish(request, module_name, after_list, debug)
File "/usr/local/www/Zope/lib/python/ZPublisher/Publish.py", line 101,
in publish
request, bind=1)
File "/usr/local/www/Zope/lib/python/ZPublisher/mapply.py", line 88,
in mapply
if debug is not None: return debug(object,args,context)
File "/usr/local/www/Zope/lib/python/ZPublisher/Publish.py", line 39,
in call_object
result=apply(object,args) # Type s<cr> to step into published
object.
File "/usr/local/www/zope/Products/CMFCore/PortalContent.py", line
116, in __call__
return view()
File "/usr/local/www/Zope/lib/python/Shared/DC/Scripts/Bindings.py",
line 306, in __call__
return self._bindAndExec(args, kw, None)
File "/usr/local/www/Zope/lib/python/Shared/DC/Scripts/Bindings.py",
line 343, in _bindAndExec
return self._exec(bound_data, args, kw)
File "/usr/local/www/zope/Products/CMFCore/FSPageTemplate.py", line
191, in _exec
result = self.pt_render(extra_context=bound_names)
File "/usr/local/www/zope/Products/CMFCore/FSPageTemplate.py", line
124, in pt_render
result = FSPageTemplate.inheritedAttribute('pt_render')(
File
"/usr/local/www/Zope/lib/python/Products/PageTemplates/PageTemplate.py",
line 96, in pt_render
tal=not source, strictinsert=0)()
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 190,
in __call__
self.interpret(self.program)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 234,
in interpret
handlers[opcode](self, args)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 671,
in do_useMacro
self.interpret(macro)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 234,
in interpret
handlers[opcode](self, args)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 409,
in do_optTag_tal
self.do_optTag(stuff)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 394,
in do_optTag
return self.no_tag(start, program)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 389,
in no_tag
self.interpret(program)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 234,
in interpret
handlers[opcode](self, args)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 671,
in do_useMacro
self.interpret(macro)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 234,
in interpret
handlers[opcode](self, args)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 460,
in do_setLocal_tal
self.engine.setLocal(name, self.engine.evaluateValue(expr))
File "/usr/local/www/Zope/lib/python/Products/PageTemplates/TALES.py",
line 221, in evaluate
return expression(self)
File
"/usr/local/www/Zope/lib/python/Products/PageTemplates/Expressions.py",
line 201, in __call__
return self._eval(econtext)
File
"/usr/local/www/Zope/lib/python/Products/PageTemplates/Expressions.py",
line 196, in _eval
return render(ob, econtext.vars)
File
"/usr/local/www/Zope/lib/python/Products/PageTemplates/Expressions.py",
line 95, in render
ob = call_with_ns(ob.__render_with_namespace__, ns)
File
"/usr/local/www/Zope/lib/python/Products/PageTemplates/ZRPythonExpr.py",
line 73, in call_with_ns
return f(td)
File "/usr/local/www/zope/Products/CMFCore/FSPythonScript.py", line
99, in __render_with_namespace__
return Script.__render_with_namespace__(self, namespace)
File "/usr/local/www/Zope/lib/python/Shared/DC/Scripts/Bindings.py",
line 320, in __render_with_namespace__
return self._bindAndExec((), namevals, namespace)
File "/usr/local/www/Zope/lib/python/Shared/DC/Scripts/Bindings.py",
line 343, in _bindAndExec
return self._exec(bound_data, args, kw)
File "/usr/local/www/zope/Products/CMFCore/FSPythonScript.py", line
160, in _exec
result = apply(f, args, kw)
File "Script (Python)", line 30, in listMetaTags
File "/usr/local/www/zope/Products/CMFDefault/DublinCore.py", line
106, in Creator
owner = self.getOwner()
File "/usr/local/www/Zope/lib/python/AccessControl/Owned.py", line 94,
in getOwner
user = udb.getUserById(oid, None)
File
"/usr/local/www/zope/Products/GroupUserFolder/GroupUserFolder.py", line
336, in getUserById
ret = self.getUser(id, __force_group_id__ = 1)
File
"/usr/local/www/zope/Products/GroupUserFolder/GroupUserFolder.py", line
317, in getUser
u = src.getUser(name)
File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line
783, in getUser
user = self.getUserByAttr(self._login_attr, name, pwd, cache=1)
File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line
714, in getUserByAttr
user_roles, user_dn, user_attrs = self._lookupuserbyattr(
File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line
305, in _lookupuserbyattr
, bind_pwd=bind_pwd
File "/var/www/zope/Products/LDAPUserFolder/LDAPDelegate.py", line
318, in search
connection = self.connect(bind_dn=bind_dn, bind_pwd=bind_pwd)
File "/var/www/zope/Products/LDAPUserFolder/LDAPDelegate.py", line
195, in connect
conn.simple_bind_s(user_dn, user_pwd)
File "/var/www/zope/Products/LDAPUserFolder/SharedResource.py", line
112, in __call__
return self._callable(*args, **kw)
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
175, in simple_bind_s
msgid = self.simple_bind(who,cred,serverctrls,clientctrls)
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()
Thread 4913401856 (GET
/VirtualHostBase/http/web.irtnog.org:80/irtnog/VirtualHostRoot/Members/x
enophon/freebsd/winbind):
File
"/usr/local/www/Zope/lib/python/ZServer/PubCore/ZServerPublisher.py",
line 23, in __init__
response=response)
File "/usr/local/www/Zope/lib/python/ZPublisher/Publish.py", line 384,
in publish_module
environ, debug, request, response)
File "/usr/local/www/Zope/lib/python/ZPublisher/Publish.py", line 175,
in publish_module_standard
response = publish(request, module_name, after_list, debug=debug)
File
"/usr/local/www/zope/Products/PlacelessTranslationService/PatchStringIO.
py", line 51, in new_publish
x = Publish.old_publish(request, module_name, after_list, debug)
File "/usr/local/www/Zope/lib/python/ZPublisher/Publish.py", line 101,
in publish
request, bind=1)
File "/usr/local/www/Zope/lib/python/ZPublisher/mapply.py", line 88,
in mapply
if debug is not None: return debug(object,args,context)
File "/usr/local/www/Zope/lib/python/ZPublisher/Publish.py", line 39,
in call_object
result=apply(object,args) # Type s<cr> to step into published
object.
File "/usr/local/www/zope/Products/CMFCore/PortalContent.py", line
116, in __call__
return view()
File "/usr/local/www/Zope/lib/python/Shared/DC/Scripts/Bindings.py",
line 306, in __call__
return self._bindAndExec(args, kw, None)
File "/usr/local/www/Zope/lib/python/Shared/DC/Scripts/Bindings.py",
line 343, in _bindAndExec
return self._exec(bound_data, args, kw)
File "/usr/local/www/zope/Products/CMFCore/FSPageTemplate.py", line
191, in _exec
result = self.pt_render(extra_context=bound_names)
File "/usr/local/www/zope/Products/CMFCore/FSPageTemplate.py", line
124, in pt_render
result = FSPageTemplate.inheritedAttribute('pt_render')(
File
"/usr/local/www/Zope/lib/python/Products/PageTemplates/PageTemplate.py",
line 96, in pt_render
tal=not source, strictinsert=0)()
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 190,
in __call__
self.interpret(self.program)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 234,
in interpret
handlers[opcode](self, args)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 671,
in do_useMacro
self.interpret(macro)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 234,
in interpret
handlers[opcode](self, args)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 409,
in do_optTag_tal
self.do_optTag(stuff)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 394,
in do_optTag
return self.no_tag(start, program)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 389,
in no_tag
self.interpret(program)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 234,
in interpret
handlers[opcode](self, args)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 671,
in do_useMacro
self.interpret(macro)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 234,
in interpret
handlers[opcode](self, args)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 460,
in do_setLocal_tal
self.engine.setLocal(name, self.engine.evaluateValue(expr))
File "/usr/local/www/Zope/lib/python/Products/PageTemplates/TALES.py",
line 221, in evaluate
return expression(self)
File
"/usr/local/www/Zope/lib/python/Products/PageTemplates/Expressions.py",
line 201, in __call__
return self._eval(econtext)
File
"/usr/local/www/Zope/lib/python/Products/PageTemplates/Expressions.py",
line 196, in _eval
return render(ob, econtext.vars)
File
"/usr/local/www/Zope/lib/python/Products/PageTemplates/Expressions.py",
line 95, in render
ob = call_with_ns(ob.__render_with_namespace__, ns)
File
"/usr/local/www/Zope/lib/python/Products/PageTemplates/ZRPythonExpr.py",
line 73, in call_with_ns
return f(td)
File "/usr/local/www/zope/Products/CMFCore/FSPythonScript.py", line
99, in __render_with_namespace__
return Script.__render_with_namespace__(self, namespace)
File "/usr/local/www/Zope/lib/python/Shared/DC/Scripts/Bindings.py",
line 320, in __render_with_namespace__
return self._bindAndExec((), namevals, namespace)
File "/usr/local/www/Zope/lib/python/Shared/DC/Scripts/Bindings.py",
line 343, in _bindAndExec
return self._exec(bound_data, args, kw)
File "/usr/local/www/zope/Products/CMFCore/FSPythonScript.py", line
160, in _exec
result = apply(f, args, kw)
File "Script (Python)", line 30, in listMetaTags
File "/usr/local/www/zope/Products/CMFDefault/DublinCore.py", line
106, in Creator
owner = self.getOwner()
File "/usr/local/www/Zope/lib/python/AccessControl/Owned.py", line 94,
in getOwner
user = udb.getUserById(oid, None)
File
"/usr/local/www/zope/Products/GroupUserFolder/GroupUserFolder.py", line
336, in getUserById
ret = self.getUser(id, __force_group_id__ = 1)
File
"/usr/local/www/zope/Products/GroupUserFolder/GroupUserFolder.py", line
317, in getUser
u = src.getUser(name)
File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line
783, in getUser
user = self.getUserByAttr(self._login_attr, name, pwd, cache=1)
File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line
714, in getUserByAttr
user_roles, user_dn, user_attrs = self._lookupuserbyattr(
File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line
305, in _lookupuserbyattr
, bind_pwd=bind_pwd
File "/var/www/zope/Products/LDAPUserFolder/LDAPDelegate.py", line
318, in search
connection = self.connect(bind_dn=bind_dn, bind_pwd=bind_pwd)
File "/var/www/zope/Products/LDAPUserFolder/LDAPDelegate.py", line
219, in connect
, op_timeout=getter('op_timeout')
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)
Thread 4913399808 (GET
/VirtualHostBase/http/web.irtnog.org:80/irtnog/VirtualHostRoot/Members/x
enophon/freebsd/install):
File
"/usr/local/www/Zope/lib/python/ZServer/PubCore/ZServerPublisher.py",
line 23, in __init__
response=response)
File "/usr/local/www/Zope/lib/python/ZPublisher/Publish.py", line 384,
in publish_module
environ, debug, request, response)
File "/usr/local/www/Zope/lib/python/ZPublisher/Publish.py", line 175,
in publish_module_standard
response = publish(request, module_name, after_list, debug=debug)
File
"/usr/local/www/zope/Products/PlacelessTranslationService/PatchStringIO.
py", line 51, in new_publish
x = Publish.old_publish(request, module_name, after_list, debug)
File "/usr/local/www/Zope/lib/python/ZPublisher/Publish.py", line 101,
in publish
request, bind=1)
File "/usr/local/www/Zope/lib/python/ZPublisher/mapply.py", line 88,
in mapply
if debug is not None: return debug(object,args,context)
File "/usr/local/www/Zope/lib/python/ZPublisher/Publish.py", line 39,
in call_object
result=apply(object,args) # Type s<cr> to step into published
object.
File "/usr/local/www/zope/Products/CMFCore/PortalContent.py", line
116, in __call__
return view()
File "/usr/local/www/Zope/lib/python/Shared/DC/Scripts/Bindings.py",
line 306, in __call__
return self._bindAndExec(args, kw, None)
File "/usr/local/www/Zope/lib/python/Shared/DC/Scripts/Bindings.py",
line 343, in _bindAndExec
return self._exec(bound_data, args, kw)
File "/usr/local/www/zope/Products/CMFCore/FSPageTemplate.py", line
191, in _exec
result = self.pt_render(extra_context=bound_names)
File "/usr/local/www/zope/Products/CMFCore/FSPageTemplate.py", line
124, in pt_render
result = FSPageTemplate.inheritedAttribute('pt_render')(
File
"/usr/local/www/Zope/lib/python/Products/PageTemplates/PageTemplate.py",
line 96, in pt_render
tal=not source, strictinsert=0)()
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 190,
in __call__
self.interpret(self.program)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 234,
in interpret
handlers[opcode](self, args)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 671,
in do_useMacro
self.interpret(macro)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 234,
in interpret
handlers[opcode](self, args)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 409,
in do_optTag_tal
self.do_optTag(stuff)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 394,
in do_optTag
return self.no_tag(start, program)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 389,
in no_tag
self.interpret(program)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 234,
in interpret
handlers[opcode](self, args)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 671,
in do_useMacro
self.interpret(macro)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 234,
in interpret
handlers[opcode](self, args)
File "/usr/local/www/Zope/lib/python/TAL/TALInterpreter.py", line 460,
in do_setLocal_tal
self.engine.setLocal(name, self.engine.evaluateValue(expr))
File "/usr/local/www/Zope/lib/python/Products/PageTemplates/TALES.py",
line 221, in evaluate
return expression(self)
File
"/usr/local/www/Zope/lib/python/Products/PageTemplates/Expressions.py",
line 201, in __call__
return self._eval(econtext)
File
"/usr/local/www/Zope/lib/python/Products/PageTemplates/Expressions.py",
line 196, in _eval
return render(ob, econtext.vars)
File
"/usr/local/www/Zope/lib/python/Products/PageTemplates/Expressions.py",
line 95, in render
ob = call_with_ns(ob.__render_with_namespace__, ns)
File
"/usr/local/www/Zope/lib/python/Products/PageTemplates/ZRPythonExpr.py",
line 73, in call_with_ns
return f(td)
File "/usr/local/www/zope/Products/CMFCore/FSPythonScript.py", line
99, in __render_with_namespace__
return Script.__render_with_namespace__(self, namespace)
File "/usr/local/www/Zope/lib/python/Shared/DC/Scripts/Bindings.py",
line 320, in __render_with_namespace__
return self._bindAndExec((), namevals, namespace)
File "/usr/local/www/Zope/lib/python/Shared/DC/Scripts/Bindings.py",
line 343, in _bindAndExec
return self._exec(bound_data, args, kw)
File "/usr/local/www/zope/Products/CMFCore/FSPythonScript.py", line
160, in _exec
result = apply(f, args, kw)
File "Script (Python)", line 30, in listMetaTags
File "/usr/local/www/zope/Products/CMFDefault/DublinCore.py", line
106, in Creator
owner = self.getOwner()
File "/usr/local/www/Zope/lib/python/AccessControl/Owned.py", line 94,
in getOwner
user = udb.getUserById(oid, None)
File
"/usr/local/www/zope/Products/GroupUserFolder/GroupUserFolder.py", line
336, in getUserById
ret = self.getUser(id, __force_group_id__ = 1)
File
"/usr/local/www/zope/Products/GroupUserFolder/GroupUserFolder.py", line
317, in getUser
u = src.getUser(name)
File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line
783, in getUser
user = self.getUserByAttr(self._login_attr, name, pwd, cache=1)
File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line
714, in getUserByAttr
user_roles, user_dn, user_attrs = self._lookupuserbyattr(
File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line
305, in _lookupuserbyattr
, bind_pwd=bind_pwd
File "/var/www/zope/Products/LDAPUserFolder/LDAPDelegate.py", line
318, in search
connection = self.connect(bind_dn=bind_dn, bind_pwd=bind_pwd)
File "/var/www/zope/Products/LDAPUserFolder/LDAPDelegate.py", line
195, in connect
conn.simple_bind_s(user_dn, user_pwd)
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)
End of dump
--
"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 python-ldap
mailing list