Full_Name: Ali Pouya Version: 2.4.11 OS: Linux 2.6 (Fedora) URL: ftp://ftp.openldap.org/incoming/ Submission from: (NULL) (145.242.11.3)
I have a directory with a master and one replica in RefreshAndPersist mode.
The replica is synchronized with the master. I stop it for making a backup. During that time I do three write operations on the master :
I add a new object o1, then I modify an already existing object o2, and finally I add another new object o3.
After service startup, the replica gets synchronized with the master, and the contextCSN attributes are the same on both servers. But the object o1 is missing in the replica !
More investigation shows that the sync provider sends objects to the consumer in createTimestamp order. In other words the sync information is sent in this order : o2, then o1, then o3.
After getting o2, the consumer rejects o1 (which has now a smaller entryCSN) with this message in the log:
.... do_syncrep2: cookie=rid=002,csn=20080822130259.472005Z#000000#001#000000 do_syncrep2: rid=002 CSN too old, ignoring 20080822130259.472005Z#000000#001#000000 ldap_msgfree ...
I think sync data would better be sent in entryCSN order rather than in createTimestamp order.
I precise that I have set the following directives (I have no delete operation in my directory and I wish to avoid the present phase to be engaged) :
syncprov-nopresent TRUE syncprov-reloadhint TRUE
If I comment out at least one of these directives then the problem disapears (the object o1 is present in the replica).
The environment and configuration files are the same as for ITS 5661. Of course I can provide any other information required.
Best Regards Ali Pouya