Full_Name: Tom Pressnell
OS: debian wheezy
Submission from: (NULL) (220.127.116.11)
In testing i have encountered the following when restoring replication from
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).