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

Re: (ITS#7496) Segemtation fault in mdb_entry_decode



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

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