[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: (ITS#3434) test030 fails in HEAD
The hang appears to be related to a deadlock in send_ldap_ber() when
called in the abandon stack sequence of the databases not implied in the
operation. I clearly see at some point that while conn->c_mutex is in
the state below, it gets unlocked, but its value doesn't change; as soon
as it's locked again, it gets into a deadlock state.
I've temporarily fixed it by setting bi_op_abandon = 0 in back-relay.
Breakpoint 5, send_ldap_ber (conn=0xb6bfcdc8, ber=0xb6bf9030) at
result.c:160
160 ber_get_option( ber, LBER_OPT_BER_BYTES_TO_WRITE, &bytes );
(gdb) p conn->c_mutex
$30 = {__m_reserved = 2, __m_count = 0, __m_owner = 0x5cb4, __m_kind = 0,
__m_lock = {__status = 1, __spinlock = 0}}
(gdb) bt
#0 send_ldap_ber (conn=0xb6bfcdc8, ber=0xb6bf9030) at result.c:160
#1 0x0808ffe0 in send_ldap_response (op=0xb6bf9450, rs=0xb6bf93b0)
at result.c:429
#2 0x0809081b in slap_send_ldap_result (op=0xb6bf9450, rs=0xb6bf93b0)
at result.c:607
#3 0x0810187b in relay_back_op_abandon (op=0xb6bf9450, rs=0xb6bf93b0)
at op.c:393
#4 0x080d31b8 in over_op_func (op=0xb6bf9450, rs=0xb6bf93b0,
which=op_abandon)
at backover.c:291
#5 0x080d32f0 in over_op_abandon (op=0xb6bf9450, rs=0xb6bf93b0)
at backover.c:353
#6 0x0809e77c in fe_op_abandon (op=0xb6bf9450, rs=0xb6bf93b0) at
abandon.c:114
#7 0x080801d2 in connection_abandon (c=0xb6bfcdc8) at connection.c:726
#8 0x08080375 in connection_closing (c=0xb6bfcdc8) at connection.c:760
#9 0x080819d9 in connection_read (s=10) at connection.c:1332
#10 0x0807e711 in slapd_daemon_task (ptr=0x0) at daemon.c:1871
#11 0xb73acdac in start_thread () from /lib/tls/libpthread.so.0
#12 0xb72afa8a in clone () from /lib/tls/libc.so.6
SysNet - via Dossi,8 27100 Pavia Tel: +390382573859 Fax: +390382476497