https://bugs.openldap.org/show_bug.cgi?id=10362
Issue ID: 10362 Summary: Normalised value confusions in replication Product: OpenLDAP Version: unspecified Hardware: All OS: All Status: UNCONFIRMED Keywords: needs_review Severity: normal Priority: --- Component: slapd Assignee: bugs@openldap.org Reporter: ondra@mistotebe.net Target Milestone: ---
A lot of code expects a_nvals state to be consistent across modifies and multiple instances of the same attribute (with asserts to that effect), but replication doesn't seem to obey this:
Add this assert into syncrepl_diff_entry()[0] : assert( ( old->a_nvals == NULL ) == ( new->a_nvals == NULL ) ); if ( old->a_nvals ) assert( ( old->a_nvals == old->a_vals ) == ( new->a_nvals == new->a_vals ) );
You'll see many tests fail this, the first of which is test043.
[0]. https://git.openldap.org/openldap/openldap/-/blob/14d47146b0442df85bd949b21a...
https://bugs.openldap.org/show_bug.cgi?id=10362
Quanah Gibson-Mount quanah@openldap.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords|needs_review | Target Milestone|--- |2.7.0
https://bugs.openldap.org/show_bug.cgi?id=10362
Howard Chu hyc@openldap.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|2.7.0 |2.8.0
https://bugs.openldap.org/show_bug.cgi?id=10362
--- Comment #1 from Howard Chu hyc@openldap.org --- Some of the confusion stems from the different way values are handled in Adds vs Modifies, this is documented here
https://git.openldap.org/openldap/openldap/-/blob/master/servers/slapd/modif...
it would probably make life simpler for us if we only did things one way regardless. Finding all the relevant places to change may be difficult.