Douglas B. Jones wrote:
Thank you for the help, I thought that might be the case. I re-compiled slapd (and all) with -g (I put those in the CFLAGS and exported it). I then ran gdb with:
gdb \ -d /var/lib/ldap3/src/openldap-2.3.34/servers/slapd \ -d /var/lib/ldap3/src/openldap-2.3.34/servers/slapd/back-bdd \ -d /var/lib/ldap3/src/openldap-2.3.34/libraries/liblber \ -d /var/lib/ldap3/src/openldap-2.3.34/libraries/libldap \ -d /var/lib/ldap3/src/openldap-2.3.34/libraries/libldap_r\ -d /var/lib/ldap3/src/openldap-2.3.34/libraries/libunicode\ -d /var/lib/ldap3/src/openldap-2.3.34/libraries/libutil\ -d /var/lib/ldap3/src/openldap-2.3.34/libraries/librewrite\
None of those options are necessary.
/usr/local/openldap-2.3.34/libexec/slapd
By default the installed executables are stripped. You could just debug the original binary in the build tree. (Or you can redo the install in the slapd directory with "make install STRIP=" )
and run it with:
(gdb) r -d 1 -u ldap3 -h ldap://:389/ -l LOCAL6 -f \ /usr/local/openldap-2.3.34/etc/openldap/slapd.conf -F \ /usr/local/openldap-2.3.34/etc/openldap -u ldap3 -g ldap3
Have you read the slapd(8) manpage? Why are you providing both -f and -F? You have -u twice.
and when in the debugger it crashes on the first search and I type in where in gdb:
(first part here last of output from -d 1 for slapd)
dnNormalize: <>
<<< dnNormalize: <>
dnNormalize: <>
<<< dnNormalize: <> <= str2entry(cn=Write,cn=Waiters,cn=Monitor) -> 0x25eaafd8 backend_startup_one: starting "o=gpc,c=us" slapd starting [New Thread 634641328 (LWP 14073)] [New Thread 630442928 (LWP 14074)] [New Thread 626244528 (LWP 14075)] [New Thread 622046128 (LWP 14076)]
slap_listener(ldap://:389/)
connection_get(34): got connid=0 connection_read(34): checking for input on id=0 ber_get_next ber_get_next: tag 0x30 len 12 contents: ber_get_next do_bind ber_scanf fmt ({imt) ber: ber_scanf fmt (m}) ber:
dnPrettyNormal: <>
<<< dnPrettyNormal: <>, <> do_bind: version=3 dn="" method=128 send_ldap_result: conn=0 op=0 p=3 send_ldap_response: msgid=1 tag=97 err=0 ber_flush: 14 bytes to sd 34 connection_get(34): got connid=0 connection_read(34): checking for input on id=0 ber_get_next
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 634641328 (LWP 14073)] 0x0814c6bf in ?? () (gdb) where #0 0x0814c6bf in ?? () #1 0x00000001 in ?? () #2 0x0000002c in ?? () #3 0x25f1cfe7 in ?? () #4 0x25f1cfdc in ?? () #5 0x25f18f4c in ?? () #6 0x25d410e0 in ?? () #7 0x25d3a268 in ?? () #8 0x00000000 in ?? () (gdb)
Unfortunately, I am not getting any reference to the C source files. What am I do wrong? Eventually, hopefully, I will know linux better. Thanks for any help....
-----Original Message----- From: openldap-software-bounces+douglas=gpc.edu@OpenLDAP.org [mailto:openldap-software-bounces+douglas=gpc.edu@OpenLDAP.org]On Behalf Of Aaron Richton Sent: Friday, March 09, 2007 12:37 PM To: Douglas B. Jones Cc: Howard Chu; openldap-software@openldap.org Subject: RE: slapd stopping with no error message
Try "where". Make sure that you have line numbers from the -g compile (e.g. "init.c:354"); otherwise the trace is near impossible to use.
On Fri, 9 Mar 2007, Douglas B. Jones wrote:
I apologize, but I am not familiar with gdb. I attached to the process, it crashed with a seg fault. What should I be typing in now? Thanks!
-----Original Message----- From: openldap-software-bounces+douglas=gpc.edu@OpenLDAP.org [mailto:openldap-software-bounces+douglas=gpc.edu@OpenLDAP.org]On Behalf Of Douglas B. Jones Sent: Friday, March 09, 2007 8:34 AM To: Howard Chu Cc: Douglas B Jones; openldap-software@openldap.org Subject: RE: slapd stopping with no error message
Thanks. I am compiling with efence library right now. I am not too worried about the speed, it is not prod. I would like to run it under gdb, and I will try that, the problem is that if I loose my connection the only thing I can think of is to kill the other gdb, then re-attach. I guess that would not cause a problem. I was hoping with the cd and ulimit that the core would be generated and then gdb on that. Thanks!
-----Original Message----- From: openldap-software-bounces+douglas=gpc.edu@OpenLDAP.org [mailto:openldap-software-bounces+douglas=gpc.edu@OpenLDAP.org]On Behalf Of Howard Chu Sent: Friday, March 09, 2007 12:55 AM To: Douglas B. Jones Cc: openldap-software@openldap.org Subject: Re: slapd stopping with no error message
Douglas B. Jones wrote:
The .34 failed. I set ulimit -c 100000 and found no core on the system. I am running it again in case I made a mistake. It is compiled with debug. More later. Thanks!
Still better to run under gdb. But given the fact that you're getting heap corruption, you're really going to need something like efence in addition. Unfortunately that's going to make things run very slowly, but that's the only sure way to identify the root cause of the problem.
-----Original Message----- From: openldap-software-bounces+douglas=gpc.edu@openldap.org [mailto:openldap-software-bounces+douglas=gpc.edu@openldap.org] On Behalf Of Douglas B. Jones Sent: Friday, February 23, 2007 3:30 PM To: openldap-software@openldap.org Cc: Douglas B. Jones Subject: RE: slapd stopping with no error message
I attached a gdb to the new process plus the -d 7 output (you know, that neat thing that unix has called redirection). Hopefully, the connection I have to the computer will not be lost and I will be able to get the trace if it fails. Also, not the results below are just the last part of the output. Let me know if I need more. For what it is worth, I did the 'he' search shown at the bottom below and it did not fail.... Thanks!
-----Original Message----- From: openldap-software-bounces+douglas=gpc.edu@openldap.org [mailto:openldap-software-bounces+douglas=gpc.edu@openldap.org]On Behalf Of Douglas B. Jones Sent: Friday, February 23, 2007 2:22 PM To: openldap-software@openldap.org Cc: douglas@gpc.edu Subject: RE: slapd stopping with no error message
Finally failed, I did not have a gdb on it, but did have -d 7. Below are the results. Thanks!
do_search ldap_read: want=8 error=Resource temporarily unavailable ber_scanf fmt ({miiiib) ber:
dnPrettyNormal: <o=gpc,c=us>
=> ldap_bv2dn(o=gpc,c=us,0) <= ldap_bv2dn(o=gpc,c=us)=0 => ldap_dn2bv(272) <= ldap_dn2bv(o=gpc,c=us)=0 => ldap_dn2bv(272) <= ldap_dn2bv(o=gpc,c=us)=0 <<< dnPrettyNormal: <o=gpc,c=us>, <o=gpc,c=us> SRCH "o=gpc,c=us" 2 0 100 3600 0 ber_scanf fmt ({m) ber: ber_scanf fmt (m) ber: ber_scanf fmt ({m) ber: ber_scanf fmt (m) ber: ber_scanf fmt ({m) ber: ber_scanf fmt (m) ber: filter: (|(cn=he*)(mail=he*)(sn=he*)) ber_scanf fmt ({M}}) ber: attrs: cn mail *** glibc detected *** corrupted double-linked list: 0x29400048 *** /etc/init.d/gpcldap-33: line 51: 11051 Aborted ${slapd} -d 7 -u $user -h "ldap://:$P/" $OPTIONS $SLAPD_OPTIONS
-- -- Howard Chu Chief Architect, Symas Corp. http://www.symas.com Director, Highland Sun http://highlandsun.com/hyc Chief Architect, OpenLDAP http://www.openldap.org/project/