Dick Visser wrote:
(first post)
Hi guys
I am trying to set-up a pair of directory servers. Both of them run Ubuntu 8.04, which has OpenLDAP-2.4.9.
I started out with one server, configured that to suit my needs (store UNIX and smb accounts), which works fine. Next thing is to set-up a second 'slave' server.
After reading the docs, I decided to go for the syncrepl style replication for our micro tree. Everything seems to work fine. If I start the consumer it nicely pulls content from the provider.
Retrieving the whole tree with ldapsearch from both servers yields exactly the same ldif. Great.
However, if I now change something on my main server a.k.a. provider (f.i. change a password), the next time the consumers contacts the provider, the provider crashes:
root@ldap:/etc/ldap# slapd -f slapd.conf -g openldap -u openldap -d 15 [snip] *** glibc detected *** slapd: free(): invalid size: 0xb676ef08 *** ======= Backtrace: ========= /lib/tls/i686/cmov/libc.so.6[0xb7c62a85] /lib/tls/i686/cmov/libc.so.6(cfree+0x90)[0xb7c664f0] /usr/lib/liblber-2.4.so.2(ber_memfree_x+0x4a)[0xb7f93b4a] /usr/lib/ldap/syncprov-2.4.so.2[0xb787619a] slapd(overlay_op_walk+0x34)[0x80da4e4] slapd[0x80daaf7] slapd(fe_op_search+0x313)[0x8078a73] slapd(do_search+0x777)[0x80792e7] slapd[0x807653f] slapd[0x8076c36] /usr/lib/libldap_r-2.4.so.2[0xb7fa4714] /lib/tls/i686/cmov/libpthread.so.0[0xb7d4b4fb] /lib/tls/i686/cmov/libc.so.6(clone+0x5e)[0xb7ccde5e] ======= Memory map: ======== Aborted
A slave server killing a master sort of defeats the whole purpose ;-)
Any ideas how to solve this?
I suggest you download OpenLDAP 2.4.11 and try again; there were a large number of syncprov fixes since 2.4.9.