[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
syncrepl and "no equality matching rule"
Hello,
I run an LDAP directory on 3 servers : one master, and two slaves,
synchronised with syncrepl. The 3 servers are running FreeBSD 7.0 and
openLDAP 2.4.13.
I encountered yesterday an issue with syncrepl that should have been
solved with openLDAP 2.4.13
http://www.openldap.org/lists/openldap-software/200812/msg00040.html
The synchronisation was blocking on the deletion of a
facsimileTelephoneNumber.
When the problem occured, the master entry was (only showing the
facsimileTelephoneNumber attribute) :
dn: uid=veinantep,ou=uds,ou=people,o=annuaire
facsimileTelephoneNumber: 0388613347
And the slave entry was :
dn: uid=veinantep,ou=uds,ou=people,o=annuaire
facsimileTelephoneNumber: 0388612908
facsimileTelephoneNumber: 0388613347
The application doing the modification on the master is always using a
"replace" operation, to avoid the "no equality matching rule" problem.
It seems that syncrepl tries to synchronise the slave by generating the
forbidden operation of deleting a precise facsimileTelephoneNumber.
Is this problem known ? the release between 2.4.13 and 2.4.16 don't
mentionned something about it.
I managed to unlock the situation by completely deleting the
"facsimileTelephoneNumber" on the master, then adding it again.
The big problem of this little issue is that it is blocking all the
synchronisation process between master and slaves ...
By the way, is there a way to check the good state of the
synchronisation with syncrepl (besides parsing the sync logs or doing
recurring diff between the servers) ?
I must admit that I miss slurpd's .rej files.
Just in case, here are the log of one of the slaves :
syncrepl_entry: rid=101 be_search (0)
syncrepl_entry: rid=101 uid=veinantep,ou=uds,ou=people,o=annuaire
bdb_modify: uid=veinantep,ou=uds,ou=people,o=annuaire
bdb_dn2entry("uid=veinantep,ou=uds,ou=people,o=annuaire")
bdb_modify_internal: 0x0001fc23: uid=veinantep,ou=uds,ou=people,o=annuaire
<= acl_access_allowed: granted to database root
bdb_modify_internal: delete facsimileTelephoneNumber
bdb_modify_internal: 18 modify/delete: facsimileTelephoneNumber: no
equality matching rule
bdb_modify: modify failed (18)
send_ldap_result: conn=-1 op=0 p=0
send_ldap_result: err=18 matched="" text="modify/delete:
facsimileTelephoneNumber: no equality matching rule"
null_callback : error code 0x12
syncrepl_entry: rid=101 be_modify (18)
syncrepl_entry: rid=101 be_modify failed (18)
Thanks,
--
Alain ZAMBONI
Direction Informatique
Université de Strasbourg