From: Matthew X. E. <xen...@ir...> - 2005-03-16 22:24:00
|
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=3Dresponse) 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 =3D publish(request, module_name, after_list, = debug=3Ddebug) File "/usr/local/www/zope/Products/PlacelessTranslationService/PatchStringIO. py", line 51, in new_publish x =3D 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=3D1) 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=3Dapply(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 =3D self.pt_render(extra_context=3Dbound_names) File "/usr/local/www/zope/Products/CMFCore/FSPageTemplate.py", line 124, in pt_render result =3D FSPageTemplate.inheritedAttribute('pt_render')( File "/usr/local/www/Zope/lib/python/Products/PageTemplates/PageTemplate.py", line 96, in pt_render tal=3Dnot source, strictinsert=3D0)() 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 =3D 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 =3D 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 =3D self.getOwner() File "/usr/local/www/Zope/lib/python/AccessControl/Owned.py", line 94, in getOwner user =3D udb.getUserById(oid, None) File "/usr/local/www/zope/Products/GroupUserFolder/GroupUserFolder.py", line 336, in getUserById ret =3D self.getUser(id, __force_group_id__ =3D 1) File "/usr/local/www/zope/Products/GroupUserFolder/GroupUserFolder.py", line 317, in getUser u =3D src.getUser(name) File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line 783, in getUser user =3D self.getUserByAttr(self._login_attr, name, pwd, cache=3D1) File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line 714, in getUserByAttr user_roles, user_dn, user_attrs =3D self._lookupuserbyattr( File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line 305, in _lookupuserbyattr , bind_pwd=3Dbind_pwd File "/var/www/zope/Products/LDAPUserFolder/LDAPDelegate.py", line 318, in search connection =3D self.connect(bind_dn=3Dbind_dn, bind_pwd=3Dbind_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 =3D 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=3Dresponse) 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 =3D publish(request, module_name, after_list, = debug=3Ddebug) File "/usr/local/www/zope/Products/PlacelessTranslationService/PatchStringIO. py", line 51, in new_publish x =3D 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=3D1) 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=3Dapply(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 =3D self.pt_render(extra_context=3Dbound_names) File "/usr/local/www/zope/Products/CMFCore/FSPageTemplate.py", line 124, in pt_render result =3D FSPageTemplate.inheritedAttribute('pt_render')( File "/usr/local/www/Zope/lib/python/Products/PageTemplates/PageTemplate.py", line 96, in pt_render tal=3Dnot source, strictinsert=3D0)() 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 =3D 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 =3D 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 =3D self.getOwner() File "/usr/local/www/Zope/lib/python/AccessControl/Owned.py", line 94, in getOwner user =3D udb.getUserById(oid, None) File "/usr/local/www/zope/Products/GroupUserFolder/GroupUserFolder.py", line 336, in getUserById ret =3D self.getUser(id, __force_group_id__ =3D 1) File "/usr/local/www/zope/Products/GroupUserFolder/GroupUserFolder.py", line 317, in getUser u =3D src.getUser(name) File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line 783, in getUser user =3D self.getUserByAttr(self._login_attr, name, pwd, cache=3D1) File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line 714, in getUserByAttr user_roles, user_dn, user_attrs =3D self._lookupuserbyattr( File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line 305, in _lookupuserbyattr , bind_pwd=3Dbind_pwd File "/var/www/zope/Products/LDAPUserFolder/LDAPDelegate.py", line 318, in search connection =3D self.connect(bind_dn=3Dbind_dn, bind_pwd=3Dbind_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 =3D 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=3Dresponse) 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 =3D publish(request, module_name, after_list, = debug=3Ddebug) File "/usr/local/www/zope/Products/PlacelessTranslationService/PatchStringIO. py", line 51, in new_publish x =3D 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=3D1) 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=3Dapply(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 =3D self.pt_render(extra_context=3Dbound_names) File "/usr/local/www/zope/Products/CMFCore/FSPageTemplate.py", line 124, in pt_render result =3D FSPageTemplate.inheritedAttribute('pt_render')( File "/usr/local/www/Zope/lib/python/Products/PageTemplates/PageTemplate.py", line 96, in pt_render tal=3Dnot source, strictinsert=3D0)() 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 =3D 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 =3D 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 =3D self.getOwner() File "/usr/local/www/Zope/lib/python/AccessControl/Owned.py", line 94, in getOwner user =3D udb.getUserById(oid, None) File "/usr/local/www/zope/Products/GroupUserFolder/GroupUserFolder.py", line 336, in getUserById ret =3D self.getUser(id, __force_group_id__ =3D 1) File "/usr/local/www/zope/Products/GroupUserFolder/GroupUserFolder.py", line 317, in getUser u =3D src.getUser(name) File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line 783, in getUser user =3D self.getUserByAttr(self._login_attr, name, pwd, cache=3D1) File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line 714, in getUserByAttr user_roles, user_dn, user_attrs =3D self._lookupuserbyattr( File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line 305, in _lookupuserbyattr , bind_pwd=3Dbind_pwd File "/var/www/zope/Products/LDAPUserFolder/LDAPDelegate.py", line 318, in search connection =3D self.connect(bind_dn=3Dbind_dn, bind_pwd=3Dbind_pwd) File "/var/www/zope/Products/LDAPUserFolder/LDAPDelegate.py", line 219, in connect , op_timeout=3Dgetter('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=3D1,timeout=3Dself.timeout) File "/usr/local/lib/python2.4/site-packages/ldap/ldapobject.py", line 399, in result res_type,res_data,res_msgid =3D 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 =3D 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=3Dresponse) 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 =3D publish(request, module_name, after_list, = debug=3Ddebug) File "/usr/local/www/zope/Products/PlacelessTranslationService/PatchStringIO. py", line 51, in new_publish x =3D 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=3D1) 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=3Dapply(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 =3D self.pt_render(extra_context=3Dbound_names) File "/usr/local/www/zope/Products/CMFCore/FSPageTemplate.py", line 124, in pt_render result =3D FSPageTemplate.inheritedAttribute('pt_render')( File "/usr/local/www/Zope/lib/python/Products/PageTemplates/PageTemplate.py", line 96, in pt_render tal=3Dnot source, strictinsert=3D0)() 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 =3D 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 =3D 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 =3D self.getOwner() File "/usr/local/www/Zope/lib/python/AccessControl/Owned.py", line 94, in getOwner user =3D udb.getUserById(oid, None) File "/usr/local/www/zope/Products/GroupUserFolder/GroupUserFolder.py", line 336, in getUserById ret =3D self.getUser(id, __force_group_id__ =3D 1) File "/usr/local/www/zope/Products/GroupUserFolder/GroupUserFolder.py", line 317, in getUser u =3D src.getUser(name) File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line 783, in getUser user =3D self.getUserByAttr(self._login_attr, name, pwd, cache=3D1) File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line 714, in getUserByAttr user_roles, user_dn, user_attrs =3D self._lookupuserbyattr( File "/var/www/zope/Products/LDAPUserFolder/LDAPUserFolder.py", line 305, in _lookupuserbyattr , bind_pwd=3Dbind_pwd File "/var/www/zope/Products/LDAPUserFolder/LDAPDelegate.py", line 318, in search connection =3D self.connect(bind_dn=3Dbind_dn, bind_pwd=3Dbind_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 =3D self.__block.acquire(blocking) End of dump --=20 "The challenge of a moral life is to do nothing that requires forgiveness." - Roger Ebert in his review of _The Woodsman_ |
From: <mi...@st...> - 2005-03-16 22:52:16
|
Matthew X. Economou wrote: > 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. Which OpenLDAP client lib version are you using? Did you build python-ldap against OpenLDAP's libldap_r? This is strongly recommended for multi-threaded client apps. > Digital AlphaServer 2000 5/250 Which version of python-ldap are you using? There were some fixes in python-ldap 2.0.4 for 64-bit platforms. Could you please try to reproduce this problem without Zope? Maybe some small multi-threaded client app sending similar LDAP requests to the server? Ciao, Michael. |