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

Re: (ITS#5756) 2.4 slapo-pcache only caches first lookup for certain templates



Hi there,

I've put this patched version on a small lab of clients (about 23) and  
on one of them slapd has segfaulted and dumped core.

Here's the backtrace:

Program terminated with signal 11, Segmentation fault.
#0  pcache_filter_cmp (f1=0x8af09f8, f2=0x39) at pcache.c:608
608		switch( f2->f_choice ) {
(gdb) bt
#0  pcache_filter_cmp (f1=0x8af09f8, f2=0x39) at pcache.c:608
#1  0x08155862 in tavl_insert (root=0x8afe590, data=0x8aefb88,
     fcmp=0x81399b0 <pcache_query_cmp>, fdup=0x8154700 <avl_dup_error>)
     at tavl.c:82
#2  0x0813a95d in add_query (op=0x8ae3658, qm=0x8a74cc0,  
query=0xb55af394,
     templ=0x8a90f88, why=PC_POSITIVE, wlock=1) at pcache.c:1252
#3  0x0813d7f1 in pcache_op_cleanup (op=0x8ae3658, rs=0xb5eb1148)
     at pcache.c:2041
#4  0x08076a04 in slap_cleanup_play (op=0x8ae3658, rs=0xb5eb1148)
     at result.c:341
#5  0x08079a56 in send_ldap_response (op=0x8ae3658, rs=0xb5eb1148)
     at result.c:522
#6  0x0807aa42 in slap_send_ldap_result (op=0x8ae3658, rs=0xb5eb1148)
     at result.c:650
#7  0x080f4fef in ldap_back_search (op=0x8ae3658, rs=0xb5eb1148)
     at search.c:549
#8  0x080cf431 in overlay_op_walk (op=0x8ae3658, rs=0xb5eb1148,
     which=op_search, oi=0x8a74ff0, on=0x8a750f0) at backover.c:670
#9  0x080cf9ed in over_op_func (op=0x8ae3658, rs=0xb5eb1148,  
which=op_search)
     at backover.c:722
#10 0x08069016 in fe_op_search (op=0x8ae3658, rs=0xb5eb1148) at  
search.c:366
#11 0x0806989b in do_search (op=0x8ae3658, rs=0xb5eb1148) at search.c: 
217
#12 0x08066a66 in connection_operation (ctx=0xb5eb1218, arg_v=0x8ae3658)
     at connection.c:1090
#13 0x08067082 in connection_read_thread (ctx=0xb5eb1218, argv=0xf)
     at connection.c:1216
#14 0x08159704 in ldap_int_thread_pool_wrapper (xpool=0x8a52f90) at  
tpool.c:663
#15 0x0064f46b in start_thread () from /lib/libpthread.so.0
#16 0x005a6dbe in clone () from /lib/libc.so.6


This looks a little strange to me...

(gdb) p f2->f_choice
Cannot access memory at address 0x39
(gdb) up
#1  0x08155862 in tavl_insert (root=0x8afe590, data=0x8aefb88,
     fcmp=0x81399b0 <pcache_query_cmp>, fdup=0x8154700 <avl_dup_error>)
     at tavl.c:82
82			cmp = fcmp( data, p->avl_data );
(gdb) p p->avl_data
$1 = (void *) 0x8af62e0
(gdb)


Cheers
Toby



-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.