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