./configure --disable-backends --disable-overlays --enable-bdb --enable-dds \ CC=gcc CFLAGS="-g -O0" CPPFLAGS="-DLDAP_MEMORY_DEBUG -DSLAP_NO_SL_MALLOC ... ./run test046-dds ... Re-vitalizing the initial dynamic entry... Re-renaming the subordinate dynamic entry (new superior)... Deleting a dynamic entry... Refreshing the remaining dynamic entry... Waiting 15 seconds for remaining entry to expire... ./scripts/test046-dds: line 370: 16351 Segmentation fault (core dumped) $SLAPD -f $CONF1 -h $URI1 -d $LVL $TIMING > $LOG1 2>&1
gdb -q ../servers/slapd/slapd core.16351 #0 0x00000000004e45a7 in dds_expire (ctx=0x415e8d60, di=0x2a1e990) at dds.c:219 219 op->o_req_dn = de->de_ndn; (gdb) bt #0 0x00000000004e45a7 in dds_expire (ctx=0x415e8d60, di=0x2a1e990) at dds.c:219 #1 0x00000000004e4867 in dds_expire_fn (ctx=0x415e8d60, arg=0x2b97c70) at dds.c:274 #2 0x00000000004fff10 in ldap_int_thread_pool_wrapper (xpool=0x29f0a30) at tpool.c:663 #3 0x000000350ee06367 in start_thread () from /lib64/libpthread.so.0 #4 0x000000350e2d30ad in clone () from /lib64/libc.so.6 (gdb) p de $1 = (dds_expire_t *) 0xffffffffffffffff
It only breaks if both of -DLDAP_MEMORY_DEBUG -DSLAP_NO_SL_MALLOC are given, then it crashes the same way every time.
x86_64, Red Hat Enterprise Linux 5.3. C library: /lib64/libc.so.6 -> libc-2.5.so.