From: Matthew X. E. <xen...@ir...> - 2005-03-17 12:53:35
|
Michael, I installed python-ldap 2.0.6 on Python 2.4 and using OpenLDAP 2.2.23, all of which came from the FreeBSD ports tree. According to ldd(1), python-ldap's helper library links to the reentrant versions of the OpenLDAP client libraries: /usr/local/lib/python2.4/site-packages/_ldap.so: libldap_r-2.2.so.7 =3D> /usr/local/lib/libldap_r-2.2.so.7 liblber-2.2.so.7 =3D> /usr/local/lib/liblber-2.2.so.7 libssl.so.3 =3D> /usr/lib/libssl.so.3 libcrypto.so.3 =3D> /lib/libcrypto.so.3 I traced the Zope process with ktrace(8). There are a number of calls to poll(2) and the SIGPROF signal handler (which resets itself, apparently, as I see follow-up calls to gettimeofday(2) and sigprocmask(2)). These calls repeat. I believe SIGPROF is used by the threading implementation. I attached to the Zope instance with GDB. While it doesn't list any threads (command "info threads"), GDB gives me the following backtrace: (gdb) bt #0 0x00000001601bd320 in _get_curthread () from /usr/lib/libc_r.so.5 #1 0x00000001601c1be4 in _thread_leave_cancellation_point () from /usr/lib/libc_r.so.5 #2 0x00000001601b70e8 in select () from /usr/lib/libc_r.so.5 #3 0x0000000160ca4644 in ldap_int_select () from /usr/local/lib/libldap_r-2.2.so.7 #4 0x0000000160c8c9a4 in wait4msg () from /usr/local/lib/libldap_r-2.2.so.7 #5 0x0000000160c8c440 in ldap_result () from /usr/local/lib/libldap_r-2.2.so.7 #6 0x0000000160c5ce50 in l_ldap_result2 () from /usr/local/lib/python2.3/site-packages/_ldap.so #7 0x00000001200cf9ac in PyCFunction_Call () #8 0x00000001200186f4 in PyObject_Call () #9 0x0000000120080228 in PyEval_GetFuncDesc () #10 0x000000012007c7a8 in PyEval_EvalCode () #11 0x000000012007dcb8 in PyEval_EvalCodeEx () > Could you please try to reproduce this problem without Zope? Maybe > some small multi-threaded client app sending similar LDAP requests > to the server? I wish I knew enough Python to write a few test cases of my own. I will try. Best wishes, Matthew --=20 "The challenge of a moral life is to do nothing that requires forgiveness." - Roger Ebert in his review of _The Woodsman_ |