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

syncrepl refresh not finished after consumer restart



I am experiencing a strange behaviour from syncrepl when the consumer is
restarted during replication:

Firstly the facts: I am running openldap 2.3.17 on SLES9 on provider and
consumer. I have indexes for entryCSN and entryUUId on both servers. I am
using the refreshAndPersist mode of syncrepl.

Secondly the problem: The provider has a loadad database (about 5,000
entries); the consumer's database is blank. When I start the consumer it
does actually start with the refreshing action (REFRESH_PRESENT & starting
LDAP_SYNC_ADD of all entries). When I stop the consumer *during* the refresh
(clean shutdown), things still look normal. The provider recognizes the
closed connection. When I start the consumer again, it starts in the
REFRESH_DELETE mode, although it hasn't replicated all entries yet.
Shouldn't the consumer finish or restart the refresh?

The same behaviour with the refreshOnly mode of syncrepl.
The same behaviour with a quickly-built openldap 2.3.24 slapd binary.

The same behaviour when starting syncrepl with already-in-sync databases on
provider and consumer, i.e.: When deleting a tree on the provider, the
consumer starts deleting the same entries. When restarting the consumer
*during* the deletions, syncrepl will restart in REFRESH_DELETE, although
not all deletions had been passed on to and processed by the consumer.

Am I missing something or is this in fact intended behaviour which may leave
me two inconsistent servers when the consumer is stopped or crashes during
sync operations?

Matthias


---
Matthias Halbritter
Bayerisches Landesamt fuer Steuern
eMail: matthias.halbritter@lfst.bayern.de