Full_Name: Tom Pressnell Version: 2.4.40 OS: debian wheezy URL: ftp://ftp.openldap.org/incoming/ Submission from: (NULL) (5.63.147.4)
Hi,
In testing i have encountered the following when restoring replication from multiple providers.
slapd: slapd starting slapd: null_callback : error code 0x10 slapd: syncrepl_entry: rid=106 be_modify failed (16)AsAslapd: do_syncrepl: rid=106 rc 16 retrying (9 retries left)
Running 2.4.40 on debian wheezy amd64. This occurs with both the mdb and hdb backends.
While the consumer was offline i removed all values of an indexed attribute from hundreds of entries, all providers are synced.
Using standard syncrepl (not delta), issue occurs at process startup where the consumer has been offline for a short while, i.e. replaying the sessionlog not falling back to present.
Having a read of syncrepl.c it would seem that syncrepl_diff_entry is called for a entry received from a provider in a race with the same entry from another provider in a different thread. Both diff calls result in an attribute delete operation, when be_modify is hit for the second time it fails with no such attribute as the first thread has already removed it (uses DELETE, not SOFTDEL).
Thanks
Tom