Trac Ticket #359 - Database RUV could mismatch the one in changelog under the stress
https://fedorahosted.org/389/ticket/359
Fix description:
. csnplRollUp (csnpl.c) - To get the first committed csndata, if
there are preceded uncommitted csn's in the csnpl list, this
patch skips them and returns the first committed csn.
. llistRemoveCurrentAndGetNext (llist.c) - when the last item
in the list is removed, tail pointer is initialized, too.
. ldbm_back_add, ldbm_back_modrdn (ldbm_add.c, ldbm_modrdn.c) -
make sure SLAPI_RESULT_CODE and SLAPI_PLUGIN_OPRETURN are set
not just when the transaction is started, but in general.
If an error occurs the RESULT_CODE triggers to remove the CSN
from the RUV element.
. plugin_call_func (plugin.c) - when the plugin type is be pre/
post op, respect the fatal error code (-1) instead of OR the
results from all the plugins. The error code -1 is checked
in ldap_back_add and ldbm_back_modrdn to distinguish from the
URP operation bits.