[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Problem unexpected failing slapd



Ruud Baart wrote:
Sorry, I think I found a way to start slapd with gdb. The main mistake I
made was using uid openldap. It should be run as root.
      # gdb -q -x /root/gdb.init --args /usr/sbin/slapd -h ldap:///
ldapi:/// -g openldap -u openldap -f /etc/ldap/slapd.conf -l local5

gdb.init:
      handle all nostop
      run
      quit

This way I can modify the start-stop script. With a restart there is no
need for user intervention.

Now it runs and functions. I assume this is the way Howard Chu
suggests. Let's wait and see what happens.

No. I did not say to start slapd using gdb. I said to attach gdb to the running slapd, which means slapd should already be started, using whatever method you normally use to start it.

What you've done will accomplish nothing.

Op 28-2-2011 12:10, Ruud Baart schreef:

Op 28-2-2011 3:00, Howard Chu schreef:
Ruud Baart wrote:
Problem:
For a customer we use LDAP for many years. Last year suddenly the slapd
service just stopped without any traces in the logfiles. After a
restart
of slapd everything works fine again. But the problem was there: it was
not an incident, now and then slapd just stops and always without any
traces in the logfiles. Sometime three times a day, sometime a week
without a failure. I can't find a pattern or any relation to any other
service on the linux server.

Attach to the running slapd with gdb, type
     handle all nostop
     continue
and let it run. If there's a crash you'll see what happened in gdb.
I tried it but I don't get this working. I have no experience with
gdb. I assume I do something wrong.

Normally slapd daemon runs like this on a test machine
      /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u openldap -f
/etc/ldap/slapd.conf -l local5

If I try this running attached to gdb:
su openldap -s /bin/bash
gdb --args  /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u
openldap -f /etc/ldap/slapd.conf -l local5
GNU gdb (GDB) 7.0.1-debian
....
This GDB was configured as "i486-linux-gnu".
..
Reading symbols from /usr/sbin/slapd...(no debugging symbols
found)...done.
(gdb) handle all nostop
Signal        Stop      Print   Pass to program Description
SIGHUP        No        Yes     Yes             Hangup
SIGQUIT       No        Yes     Yes             Quit
...
EXC_EMULATION No        Yes     Yes             Emulation instruction
EXC_SOFTWARE  No        Yes     Yes             Software generated
exception
EXC_BREAKPOINT No       Yes     Yes             Breakpoint
(gdb)
(gdb) continue
The program is not being run.
(gdb) run
Starting program: /usr/sbin/slapd -h ldap:/// ldapi:/// -g openldap -u
openldap -f /etc/ldap/slapd.conf -l local5
[Thread debugging using libthread_db enabled]

Program exited with code 01.

At this point I have no idea what to do.




--
  -- Howard Chu
  CTO, Symas Corp.           http://www.symas.com
  Director, Highland Sun     http://highlandsun.com/hyc/
  Chief Architect, OpenLDAP  http://www.openldap.org/project/