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

Re: (ITS#3671) disconnecting a syncrepl consumer deadlocks the provider



On Monday 25 April 2005 00:10, Howard Chu wrote:
> This is now fixed in HEAD, although some further discussion about the
> queueing behavior may be warranted.

I just tested HEAD again. Now it shows a different behaviour. The first 
ldapadd that I started after pulling the network plug still stops 
progressing after a few entries. The improvement is that the provider 
keeps processing search requests and addtional add request (only the 
first ldapadd is locked).

On the downside the (locked) ldapadd didn't resume operation after I 
reconnected the network cable. I tried to stop the consumer then and 
this made the provider crash with the following backtrace:

Thread 5 (process 20944):
#0  0xffffe410 in ?? ()
No symbol table info available.
#1  0xbffff258 in ?? ()
No symbol table info available.
#2  0x000051dd in ?? ()
No symbol table info available.
#3  0x00000000 in ?? ()
No symbol table info available.
#4  0x4030307f in pthread_join () from /lib/tls/libpthread.so.0
No symbol table info available.
#5  0x40025000 in ldap_pvt_thread_join (thread=1104513968, 
thread_return=0x0)
    at thr_posix.c:165
No locals.
#6  0x0806371d in slapd_daemon () at daemon.c:2048
        listener_tid = 1104513968
        rc = 0
#7  0x08059294 in main (argc=3, argv=0xbffff384) at main.c:784
        val = Variable "val" is not available.
#0  0xffffe410 in ?? ()

Thread 4 (process 20958):
#0  0xffffe410 in ?? ()
No symbol table info available.
#1  0x41f59268 in ?? ()
No symbol table info available.
#2  0x000000fb in ?? ()
No symbol table info available.
#3  0x00000000 in ?? ()
No symbol table info available.
#4  0x40304a56 in pthread_cond_wait () from /lib/tls/libpthread.so.0
No symbol table info available.
#5  0x40024ec0 in ldap_pvt_thread_cond_wait (cond=0x819aa8c, 
mutex=0x819aa74)
    at thr_posix.c:261
No locals.
#6  0x400247db in ldap_int_thread_pool_wrapper (xpool=0x819aa70) at 
tpool.c:468
        ctx = (ldap_int_thread_ctx_t *) 0x0
        ltc_key = {{ltk_key = 0x80a50f0, ltk_data = 0x82003e0, 
    ltk_free = 0x80a4c30 <slap_sl_mem_destroy>}, {ltk_key = 0x80a1530, 
    ltk_data = 0x0, ltk_free = 0}, {ltk_key = 0x81fdfa0, ltk_data = 0xf, 
    ltk_free = 0x80d0900 <bdb_locker_id_free>}, {ltk_key = 0x80b9810, 
    ltk_data = 0x42e60008, ltk_free = 0x80b98c0 <search_stack_free>}, {
    ltk_key = 0x0, ltk_data = 0x0, ltk_free = 0} <repeats 28 times>}
        tid = 1106615216
        i = Variable "i" is not available.
#0  0xffffe410 in ?? ()

Thread 3 (process 20960):
#0  0xffffe410 in ?? ()
No symbol table info available.
#1  0x4225b268 in ?? ()
No symbol table info available.
#2  0x000000fc in ?? ()
No symbol table info available.
#3  0x00000000 in ?? ()
No symbol table info available.
#4  0x40304a56 in pthread_cond_wait () from /lib/tls/libpthread.so.0
No symbol table info available.
#5  0x40024ec0 in ldap_pvt_thread_cond_wait (cond=0x819aa8c, 
mutex=0x819aa74)
    at thr_posix.c:261
No locals.
#6  0x400247db in ldap_int_thread_pool_wrapper (xpool=0x819aa70) at 
tpool.c:468
        ctx = (ldap_int_thread_ctx_t *) 0x0
        ltc_key = {{ltk_key = 0x80a50f0, ltk_data = 0x8201970, 
    ltk_free = 0x80a4c30 <slap_sl_mem_destroy>}, {ltk_key = 0x81fdfa0, 
    ltk_data = 0x10, ltk_free = 0x80d0900 <bdb_locker_id_free>}, {
    ltk_key = 0x80a1530, ltk_data = 0x0, ltk_free = 0}, {ltk_key = 
0x80b9810, 
    ltk_data = 0x43661008, ltk_free = 0x80b98c0 <search_stack_free>}, {
    ltk_key = 0x0, ltk_data = 0x0, ltk_free = 0} <repeats 28 times>}
        tid = 1109769136
        i = Variable "i" is not available.
#0  0xffffe410 in ?? ()

Thread 2 (process 20967):
#0  0xffffe410 in ?? ()
No symbol table info available.
#1  0x4255c1b8 in ?? ()
No symbol table info available.
#2  0x00000002 in ?? ()
No symbol table info available.
#3  0x00000000 in ?? ()
No symbol table info available.
#4  0x4030705e in siglongjmp () from /lib/tls/libpthread.so.0
No symbol table info available.
#5  0x40304ae5 in pthread_cond_wait () from /lib/tls/libpthread.so.0
No symbol table info available.
#6  0x40024ec0 in ldap_pvt_thread_cond_wait (cond=0x41afe040, 
mutex=0x41afdf8c)
    at thr_posix.c:261
No locals.
#7  0x08073ded in send_ldap_ber (conn=0x41afdf80, ber=0x4255c5d0)
    at result.c:209
        err = Variable "err" is not available.
#0  0xffffe410 in ?? ()

Thread 1 (process 20957):
#0  0xffffe410 in ?? ()
No symbol table info available.
#1  0x41d54c9c in ?? ()
No symbol table info available.
#2  0x00000006 in ?? ()
No symbol table info available.
#3  0x000051dd in ?? ()
No symbol table info available.
#4  0x403372c1 in raise () from /lib/tls/libc.so.6
No symbol table info available.
#5  0x40338b75 in abort () from /lib/tls/libc.so.6
No symbol table info available.
#6  0x40330903 in __assert_fail () from /lib/tls/libc.so.6
No symbol table info available.
#7  0x08067b45 in connection_close (c=0x41afdf80) at connection.c:650
        sd = 11
#8  0x080685b6 in connection_read (s=11) at connection.c:1280
        rc = -2
        c = (Connection *) 0x41afdf80
#9  0x0806433d in slapd_daemon_task (ptr=0x0) at daemon.c:1882
        rd = Variable "rd" is not available.

-- 
regards,
	Ralf