c89ea2f Trac Ticket #359 - Database RUV could mismatch the one

Authored and Committed by Noriko Hosoi 11 years ago
    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.
    
    (cherry-picked from commit f0f74b57f81998a325dc7472b9ea9b44c5ff6439)
    
        
file modified
+8 -2