Howard Chu wrote :
You said you pulled from HEAD on November 3, and still saw the problem. Either your checkout was wrong, or your configuration was wrong, because the fix was definitely present in HEAD by then.
Hi Howard, This time I downloaded the release 2.4.13 and ran several tests with my collegues. I send the results for your information :
Let two mirror servers A and B. The server A is the main one on which we do usually the write operations and B is the fail-over mirror. We initiate the directory at the time t0 and do all write operations on A. At the time t1 we do only one write on B. Then we resume write operations on A.
At t2 we stop B for a cold backup and do one write operation on A.
After B startup, A scans internally all objects writtent after t1, checking for the attributes objectclass and entryCSN. If we do a similar operation (write on A while B stopped) at t3, then after startup again all objects written after t1 and up to t3 are scanned (so more and more objects in the directory lifetime).
The behaviour of the server B seems OK (it does not scans objects).
This situation is produced if we set "syncprov-nopresent TRUE" on both servers.
Otherwise (without this directive) the server A scans the objects twice :
1) Once ALL directory objects, checking for their objectclass only, 2) A second time the objects written after t1, checking for objectclass and entryCSN.
On the other hand the server B scans the objects writtent before t1 !
I do not know slapd and syncprov internals but I think that if at each startup only the biggest contextCSN values of the servers were compared, the most recent objects would be checked (only one object in our example).
But may be this is not feasible for technical reasons that I ignore ?
Thanks for your patience Best Regards Ali