Full_Name: Claus Assmann Version: 2.4.26 OS: Red Hat Enterprise Linux Server release 5.5 URL: ftp://ftp.openldap.org/incoming/ Submission from: (NULL) (63.211.143.38)
While trying to determine how syncrepl behaves in various error conditions, I encountered a crash of slapd. A MASTER is set up to use push replication to a REPLICA as follows:
database ldap hidden on suffix "" rootdn "cn=slapd-ldap" uri ldap://REPLICA/ lastmod on restrict all sync_use_subentry true
acl-bind bindmethod=simple binddn="cn=Monitor" credentials=password
syncrepl rid=001 provider=ldapi://%2Fvar%2Frun%2Fldapi binddn="cn=Manager" bindmethod=simple credentials=passwd searchbase="" type=refreshAndPersist retry="5 5 60 +"
Reproduce: On REPLICA: stop slapd, clear out directory for DB, start slapd.
On MASTER: add an entry master which has to be "synced" to REPLICA; run ldapsearch to lookup up that entry on MASTER slapd dumps core, backtrace:
#0 0x00002b7e51344265 in raise () from /lib64/libc.so.6 #1 0x00002b7e51345d10 in abort () from /lib64/libc.so.6 #2 0x00002b7e5133d6e6 in __assert_fail () from /lib64/libc.so.6 #3 0x0000000000549546 in ldap_add_ext (ld=0xbba1bc0, dn=0x0, attrs=0xbeb7ed0, sctrls=0x0, cctrls=0x0, msgidp=0x435224c4) at add.c:126 #4 0x00000000004dbe6d in ldap_back_add (op=0x43523150, rs=0x43522770) at add.c:102 #5 0x0000000000481152 in overlay_op_walk (op=0x43523150, rs=0x43522770, which=op_add, oi=0xb9eb6c0, on=0x0) at backover.c:671 #6 0x00000000004816a7 in over_op_func (op=0x43523150, rs=0x43522770, which=op_add) at backover.c:723 #7 0x0000000000473706 in syncrepl_add_glue_ancestors (op=0x43523150, e=0x2b7e56628fb8) at syncrepl.c:3149 #8 0x000000000047384e in syncrepl_add_glue (op=0x43523150, e=0x2b7e56628fb8) at syncrepl.c:3193 #9 0x0000000000474795 in syncrepl_entry (si=0xb9eb1c0, op=0x43523150, entry=0x0, modlist=0x43523ca0, syncstate=<value optimized out>, syncUUID=<value optimized out>, syncCSN=0xbeb86e0) at syncrepl.c:2448 #10 0x000000000047c39b in do_syncrep2 (ctx=<value optimized out>, arg=<value optimized out>) at syncrepl.c:982 #11 do_syncrepl (ctx=<value optimized out>, arg=<value optimized out>) at syncrepl.c:1489 #12 0x000000000041eee3 in connection_read_thread (ctx=0x43523da0, argv=<value optimized out>) at connection.c:1276 #13 0x00000000005412dc in ldap_int_thread_pool_wrapper (xpool=0xb8fa1c0) at tpool.c:685 #14 0x00002b7e510ff73d in start_thread () from /lib64/libpthread.so.0 #15 0x00002b7e513e84bd in clone () from /lib64/libc.so.6
Note: this also happens with 2.4.23. On a VM instance, it causes a different error (see mail on list: "killed after 120 seconds")