[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 Halbritter
Bayerisches Landesamt fuer Steuern
eMail: matthias.halbritter@lfst.bayern.de