--On Tuesday, March 10, 2009 1:26 AM +0000 quanah(a)zimbra.com wrote:
> --On Tuesday, March 10, 2009 1:23 AM +0000 openldap-its(a)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