Indeed, syncprov_operational() is right: it duplicates the entry only
if
contextCSN is already present in the entry, and thus may need to be
updated. What's wrong is back-bdb, which gives up when the entry does not
have e_private set appropriately, while it could do more to find out about
the entry's subordinates. This may explain why in some cases the
attribute is present. This occurs whenever contextCSN is not already
present in the entry. I'm preparing a fix for back-bdb.
Fixed in HEAD; please test. Thanks, p.