[389-commits] Branch '389-ds-base-1.3.0' - ldap/servers

Mark Reynolds mreynolds at fedoraproject.org
Mon Dec 16 15:37:47 UTC 2013


 ldap/servers/plugins/replication/cl5_api.c |   13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

New commits:
commit 78f20eedf693d9504a20fb39e2e618d259e2bc2b
Author: Mark Reynolds <mreynolds at redhat.com>
Date:   Sat Dec 14 07:38:12 2013 -0500

    Ticket 47627 - Fix replication logging
    
    We printed the same CSN for the missing CSN and the supplier min CSN because
    we reused the same CSN pointer.
    
    https://fedorahosted.org/389/ticket/47627
    
    Reviewed by: rmeggins(Thanks!)
    (cherry picked from commit 20cccf58108099cead2412a979e70e4f5972b806)

diff --git a/ldap/servers/plugins/replication/cl5_api.c b/ldap/servers/plugins/replication/cl5_api.c
index a769fa7..ea0f85d 100644
--- a/ldap/servers/plugins/replication/cl5_api.c
+++ b/ldap/servers/plugins/replication/cl5_api.c
@@ -5041,6 +5041,7 @@ static int _cl5PositionCursorForReplay (ReplicaId consumerRID, const RUV *consum
     int i;
     CSN **csns = NULL;
     CSN *startCSN = NULL;
+    CSN *minCSN = NULL;
     char csnStr [CSN_STRSIZE];
     int rc = CL5_SUCCESS;
     Object *supplierRuvObj = NULL;
@@ -5130,20 +5131,24 @@ static int _cl5PositionCursorForReplay (ReplicaId consumerRID, const RUV *consum
 		*/
         if ((rc == DB_NOTFOUND) && !ruv_has_csns(file->purgeRUV))
         {
+            char mincsnStr[CSN_STRSIZE];
+
             /* use the supplier min csn for the buffer start csn - we know
                this csn is in our changelog */
-            if ((RUV_SUCCESS == ruv_get_min_csn_ext(supplierRuv, &startCSN, 1 /* ignore cleaned rids */)) &&
-                startCSN)
+            if ((RUV_SUCCESS == ruv_get_min_csn_ext(supplierRuv, &minCSN, 1 /* ignore cleaned rids */)) &&
+                minCSN)
             { /* must now free startCSN */
                 if (slapi_is_loglevel_set(SLAPI_LOG_REPL)) {
-                    csn_as_string(startCSN, PR_FALSE, csnStr); 
+                    csn_as_string(startCSN, PR_FALSE, csnStr);
+                    csn_as_string(minCSN, PR_FALSE, mincsnStr);
                     slapi_log_error(SLAPI_LOG_REPL, repl_plugin_name_cl, 
                                     "%s: CSN %s not found and no purging, probably a reinit\n",
                                     agmt_name, csnStr);
                     slapi_log_error(SLAPI_LOG_REPL, repl_plugin_name_cl, 
                                     "%s: Will try to use supplier min CSN %s to load changelog\n",
-                                    agmt_name, csnStr);
+                                    agmt_name, mincsnStr);
                 }
+                startCSN = minCSN;
                 rc = clcache_load_buffer (clcache, startCSN, DB_SET);
             }
             else




More information about the 389-commits mailing list