One of the RedHat talks at LDAPCon noted that OpenLDAP can get inconsistent when conflicting Adds and Deletes are issued. We've had this issue outstanding in ITS since 2009, it's probably time to address it.
http://www.openldap.org/its/index.cgi/Development?id=6097
The strategy I outlined in that ITS may not be the best one, we need to evaluate if that approach still makes sense.
This also touches on a discussion of ITS#7052 back in 2012.
http://www.openldap.org/lists/openldap-devel/201202/msg00010.html
We committed a couple changes to fix this, but one of them subsequently had to be reverted. One of the points raised in there was to fully serialize all writes so they always complete in CSN order, and always propagate in CSN order. I believe this is also the approach Leo Yuriev took in ReOpenLDAP. We should look into doing the same. In practice we've already got serialization occurring in accesslog and now in back-mdb too, so we're mostly there already. The syncrepl consumer also needs to be fully serialized, to simplify conflict resolution when conflicting writes are being received from multiple masters at once.