Full_Name: Ali Pouya Version: 2.4.8 OS: Linux 2.6 URL: ftp://ftp.openldap.org/incoming/ Submission from: (NULL) (145.242.11.4)
Hi, I am testing OpenLdap 2.4.8 in mirrormode. I have two mirror servers (A, and B) synchronized in SearchAndPersist mode with a retry interval of 10 seconds : retry="10 +". An injector writes data to A. The data is replicated in B. But this server UNBINDs then reBINDs to A every 10 seconds ! This continues until slapd on A crashes with a SIGIOT. More investigation in the slapd log shows that the crash is caused by the losing of the client syncrepl connection coming from B !
If instead of B I configure an ordinary replica everything is OK.
I think there are two distinct problems :
1) Contrarily to an ordinary replica, a mirror ends the persistent search, 2) slapd crashes (very scarcely) after losing the client syncrepl connection to which it was going to send data.
Below you find the backtrace after slapd crash. See also more protocol details after the backtrace.
If required I can send any detailed information about my configurations. Thanks for your help Best Regards Ali
============================
(gdb) bt #0 0x009b47a2 in _dl_sysinfo_int80 () from /lib/ld-linux.so.2 #1 0x00138815 in raise () from /lib/tls/libc.so.6 #2 0x0013a279 in abort () from /lib/tls/libc.so.6 #3 0x00131d91 in __assert_fail () from /lib/tls/libc.so.6 #4 0x0805ecb2 in connection_state_closing (c=0xa272585c) at connection.c:680 #5 0x0806c444 in send_ldap_ber (conn=0xa272585c, ber=0x9f7f3c00) at result.c:153 #6 0x0806f192 in slap_send_search_entry (op=0x9f7f3f50, rs=0x9f7f3de0) at result.c:1187 #7 0x08134038 in syncprov_qtask (ctx=0x9f7f4210, arg=0x8e21498) at syncprov.c:809 #8 0x081472df in ldap_int_thread_pool_wrapper (xpool=0x8cbf880) at tpool.c:625 #9 0x00a4e3cc in start_thread () from /lib/tls/libpthread.so.0 #10 0x001da1ae in clone () from /lib/tls/libc.so.6
============================
More protocol details : 1) As an answer to the SearchAndPersist Request, A sends to B an LDAP message [OPERATION 25] (which I do not know). But this message is not sent to an ordinary replica.
2) I also noticed that after sending UNBIND, B sends a [FIN, ACK] TCP packet. As A does not ack this packet B sends a [RST, ACK] packet 30 micro-seconds later.