meike.stone@googlemail.com wrote:
Full_Name: Meike Stone Version: 2.4.33 and git OS: Linux / SLES11 SP2 URL: ftp://ftp.openldap.org/incoming/ Submission from: (NULL) (193.200.138.3)
I use a Database with about 1,500,000 entires and 2,5GByte ldif from slapcat. This database was exported from our production system running bdb-backend.
The Problem exist in Version 2.4.33, therefore I took the slapd source from git (2013/01/21) and I compiled slapd with debugging symbols.
Thread 1 (Thread 0x7f738b21c700 (LWP 19394)):
#1 0x0000000000501d30 in mdb_search (op=0xc3a020, rs=0x7f738b21ba30) at search.c:720 scopeok = 1 edata = {mv_size = 0, mv_data = 0x7f74bbb99728}
This indicates that the entry being debugged is actually zero bytes, i.e. it's not a valid entry at all. Nodes like this get stored in the database during slapadd when a child entry gets added before its parent; a zero-byte stub is stored as a placeholder for the missing parent. When you ran slapadd you should have seen warning messages about missing entries, telling you that your LDIF is incomplete.
We can prevent the SEGV but your database is still invalid because your LDIF is invalid.
mdb = 0x7f760eff4010 id = 1156449 cursor = 1156449 lastid = 18446744073709551615