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

slurpd replication weirdness




Hi,

I have a (mostly) working openldap setup with one master and one slave. Both machines run a compiled openLDAP 2.0.7, the master runs on a Solaris 2.7, the slave on a Linux 2.2.18. Here is the configuration of the master:

database        ldbm
suffix          "o=vera.be"
rootdn          "cn=root, o=vera.be"
rootpw          xxxx
directory       /usr/local/var/openldap-ldbm
# replication directives
replogfile /usr/local/var/openldap/slapd.replog
replica host=10.0.0.132:389
        binddn="cn=Replicator1,o=vera.be"
        bindmethod=simple credentials=xxxx

access to * by * write

And here is the relevant configuration of the slave:

database        ldbm
suffix          "o=vera.be"
rootdn          "cn=Replicator1, o=vera.be"
rootpw          xxxx
directory       /usr/local/var/openldap-ldbm
# replication directives
updatedn        "cn=Replicator1,o=vera.be"
updateref       "ldap://10.0.0.135";
# Indices to maintain
index   objectClass     eq
index   mail,mailAlternateAddress,uid   eq
index   cn      sub,eq
access to * by * write

The ACLs are there just to make sure that access rights don't block anything. OK, so this works:

1. Updating the master -> slave is updated automatically
2. Making a change in the slave -> referral to the master, master is updated properly.


But after a referral to the master, when the master is updated, the slurpd doesn't manage to update the slave. Here is the error message (slurpd -d68) :

new work in /usr/local/var/openldap/slapd.replog
copy replog "/usr/local/var/openldap/slapd.replog" to "/usr/local/var/openldap-slurp/replica/slurpd.replog"
Initializing session to 10.0.0.132:389
bind to 10.0.0.132:389 as cn=Replicator1,o=vera.be (simple)
ber_flush: 44 bytes to sd 6
request 1 done
replica 10.0.0.132:389 - modify dn "uid=guest2,ou=special users,o=vera.be"
ber_flush: 183 bytes to sd 6
request 2 done
Error: ldap_modify_s failed modifying "Invalid syntax": uid=guest2,ou=special users,o=vera.be
Error: ldap operation failed, data written to "/usr/local/var/openldap-slurp/replica/10.0.0.132:389.rej"


The replication log says this:

replica: 10.0.0.132:389
time: 985173287
dn: uid=guest2,ou=special users,o=vera.be
changetype: modify
replace: cn
cn: Demo2s
-
replace: modifiersName
modifiersName:: PGFub255bW91cz4=
-
replace: modifyTimestamp
modifyTimestamp: 20010321111446Z
-

As you can see, the modifiersName is messed up (look at the double colon!). Where does this encoded string come from? The modifiersName should be uid=guest2,ou=special users,o=vera.be, the user I used to change the record in the first place.
When I make a similar change directly to the master, I get this:


replica: 10.0.0.132:389
time: 985173393
dn: uid=guest3,ou=special users,o=vera.be
changetype: modify
replace: cn
cn: Demo3s
-
replace: modifiersName
modifiersName: cn=root, o=vera.be
-
replace: modifyTimestamp
modifyTimestamp: 20010321111631Z
-

And this of course works perfectly.

Any ideas?

Bye for now,
Ward Vandewege,
Better Access.
--
I code therefore I am.