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

Re: (ITS#6011) test050 segfault



--On Tuesday, March 10, 2009 1:26 AM +0000 quanah@zimbra.com wrote:

> --On Tuesday, March 10, 2009 1:23 AM +0000 openldap-its@OpenLDAP.org
> wrote:
>
> This doesn't look good to me...
>
> (gdb) thread 1
> [Switching to thread 1 (process 5616)]#1  0x00000000004c41ff in
> slap_parse_csn_sid (csnp=0xde63140) at
> ../../../servers/slapd/ldapsync.c:129 129             p = ber_bvchr(
> &csn, '#' );
> (gdb) print p
> $4 = 0x434388a0 "??????\210CC"
> (gdb) print csn
> $5 = {bv_len = 226880736, bv_val = 0x0}

Unable to reproduce the segfault so far, but I got a lock in lt-slapd2 now:

(gdb) thr apply all bt

Thread 4 (Thread 1085503808 (LWP 26643)):
#0  0x00002b89ae006496 in pthread_cond_wait@@GLIBC_2.3.2 () from 
/lib64/libpthread.so.0
#1  0x00002b89ad84abd3 in ldap_pvt_thread_cond_wait (cond=0x1056b320, 
mutex=0x1056b2f8) at ../../../libraries/libldap_r/thr_posix.c:277
#2  0x00002b89ad849398 in ldap_pvt_thread_pool_destroy (tpool=0x7a3de8, 
run_pending=1) at ../../../libraries/libldap_r/tpool.c:570
#3  0x0000000000435cf5 in slapd_daemon_task (ptr=0x0) at 
../../../servers/slapd/daemon.c:2600
#4  0x00002b89ae0022f7 in start_thread () from /lib64/libpthread.so.0
#5  0x000000395e0d1e3d in clone () from /lib64/libc.so.6

Thread 3 (Thread 1102289216 (LWP 26660)):
#0  0x000000395e0b8c17 in sched_yield () from /lib64/libc.so.6
#1  0x00002b89ad84ab53 in ldap_pvt_thread_yield () at 
../../../libraries/libldap_r/thr_posix.c:232
#2  0x00000000004b1203 in do_syncrepl (ctx=0x41b38d90, arg=0x10988850) at 
../../../servers/slapd/syncrepl.c:1264
#3  0x00002b89ad8496b7 in ldap_int_thread_pool_wrapper (xpool=0x1056b2f0) 
at ../../../libraries/libldap_r/tpool.c:663
#4  0x00002b89ae0022f7 in start_thread () from /lib64/libpthread.so.0
#5  0x000000395e0d1e3d in clone () from /lib64/libc.so.6

Thread 2 (Thread 1119074624 (LWP 26686)):
#0  0x000000395e0b8c17 in sched_yield () from /lib64/libc.so.6
#1  0x00002b89ad84ab53 in ldap_pvt_thread_yield () at 
../../../libraries/libldap_r/thr_posix.c:232
#2  0x00000000004b1203 in do_syncrepl (ctx=0x42b3ad90, arg=0x10987fc0) at 
../../../servers/slapd/syncrepl.c:1264
#3  0x00002b89ad8496b7 in ldap_int_thread_pool_wrapper (xpool=0x1056b2f0) 
at ../../../libraries/libldap_r/tpool.c:663
#4  0x00002b89ae0022f7 in start_thread () from /lib64/libpthread.so.0
#5  0x000000395e0d1e3d in clone () from /lib64/libc.so.6

Thread 1 (Thread 47870363381552 (LWP 26628)):
#0  0x00002b89ae0035b5 in pthread_join () from /lib64/libpthread.so.0
#1  0x00002b89ad84ab2b in ldap_pvt_thread_join (thread=1085503808, 
thread_return=0x0) at ../../../libraries/libldap_r/thr_posix.c:197
#2  0x0000000000435dbf in slapd_daemon () at 
../../../servers/slapd/daemon.c:2665
#3  0x0000000000418104 in main (argc=8, argv=0x7ffffd2726d8) at 
../../../servers/slapd/main.c:948
#0  0x00002b89ae0035b5 in pthread_join () from /lib64/libpthread.so.0
(gdb) thread 2
[Switching to thread 2 (Thread 1119074624 (LWP 26686))]#0 
0x000000395e0b8c17 in sched_yield () from /lib64/libc.so.6
(gdb) frame 2
#2  0x00000000004b1203 in do_syncrepl (ctx=0x42b3ad90, arg=0x10987fc0) at 
../../../servers/slapd/syncrepl.c:1264
1264                            ldap_pvt_thread_yield();
(gdb) print si->si_mutex
$1 = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind 
= 1761636208, __spins = 1667449208, __list = {__prev = 0x45440027746e756f, 
__next = 0xa1}},
  __size = '\0' <repeats 16 times>, 
"po\000ixAccount'\000DE�\000\000\000\000\000\000", __align = 0}


Why would it be stuck waiting for an unlocked mutex to be released?

--Quanah

--

Quanah Gibson-Mount
Principal Software Engineer
Zimbra, Inc
--------------------
Zimbra ::  the leader in open source messaging and collaboration