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?