Hello,
I play a little with the mdb on a test machine, and imported our db
from production system.
(about 1,500,000 entires, 2,5GByte ldif from slapcat)
I took the slapd source from git today, and because of segmentation
fault, I compiled slapd with debugging symbols.
My configuration is simple:
--------------------------------------------
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/yast.schema
include /etc/openldap/schema/rfc2307bis.schema
include /etc/openldap/schema/my_ldap_attributes.schema
include /etc/openldap/schema/my_ldap_ObjectClasses.schema
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
sizelimit -1
timelimit 300
disallow bind_anon
require authc
gentlehup on
tool-threads 4
serverID 001
############################
# mdb database definitions
############################
database mdb
suffix "ou=root"
rootdn "cn=admin,ou=root"
rootpw password
directory /var/lib/ldap/ldap.mdb
loglevel 256
maxsize 10737418240
envflags writemap,nometasync
index objectClass,entryUUID,entryCSN eq
index cn eq,sub
.
.
. some other own indexes here
--------------------------------------------
I started my search via:
/tmp/ol/usr/local/bin/ldapsearch -x -h localhost -w password -D
cn=admin,ou=root -b'ou=root' '(objectClass=*)' >/dev/null
and got in the syslog folloing meassge:
Jan 21 17:50:31 debld02 kernel: [348860.053152] slapd[19394]: segfault
at 7f760f974ce8 ip 000000000053bea1 sp 00007f738b10a650 error 4 in
slapd
[400000+227000]
Because of this, I configured the kernel to core dump:
sysctl -w kernel.core_pattern=/tmp/core
sysctl -w kernel.core_uses_pid=1
sysctl -w kernel.suid_dumpable=2
ulimit -c unlimited
ulimit -v unlimited
and got the result via:
~# gdb /tmp/ol/usr/local/libexec/slapd /tmp/core.19386
Core was generated by
`/tmp/buildforopenldaptechnical/usr/local/libexec/slapd -h ldap:///
-f /etc/op'.
Program terminated with signal 11, Segmentation fault.
# 0 0x000000000053bea1 in mdb_entry_decode (op=0xc3a020,
data=0x7f738b10a770, e=0x7f738b11a828) at id2entry.c:666
666 a->a_desc = mdb->mi_ads[*lp++];
(gdb)
How can I solve this?