generated attributes and syncrepl

Emmanuel Dreyfus <[email protected]> Wed, 27 May 2026 16:09:33 +0000
Newsgroups gmane.network.openldap.devel
Message-ID <[email protected]>
Hello

I still work on slapo-supann, an overlay that generates attributes
from user-supplied attributes.

On a successful modify or add operation, I start an internal modify
operation to add the generated attributes. It works fine, except
that syncrepl sometimes miss this second operation: it only catch
the first one. If I modify the entry again, it will get the
missed second modification.

This is because my internal modify operation does not update
entryCSN. syncrepl has no way to know there was a second update.
But why entryCSN fails to be updated?

If I add op2.orm_no_opattrs = 0 and call slap_get_csn(), all
operative attributes are updated. This probably fixes my problem,
but modifiersName is changed to root, I preferd when I had the
original user of the fist modify operation.

If I do not set op2.orm_no_opattrs = 0, but I call slap_get_csn() and 
I perform a Modification like fhis, then only entryCSN is updated.
        mods->sml_op = LDAP_MOD_REPLACE;
        mods->sml_flags = SLAP_MOD_INTERNAL;
        mods->sml_desc = slap_schema.si_ad_entryCSN;
        mods->sml_numvals = 1;
        mods->sml_values = csn;

I was happy about it, but the discovered that syncrepl consumer still
misses the second modification, even if the master still has a more
recent entryCSN than the replica. There must be a mising bit somewhere.

Any hint?

-- 
Emmanuel Dreyfus
[email protected]