From 79f9a08fb746917e3a502a3effe89c0bef079f9c Mon Sep 17 00:00:00 2001
From: Chris Ridd <chris.ridd@forgerock.com>
Date: Tue, 19 Aug 2014 13:57:54 +0000
Subject: [PATCH] Fix OPENDJ-1190: Under rare circumstances the DS replication recovery thread (RSUpdater) can spin

---
 opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java b/opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java
index 5690378..a0ebbc7 100644
--- a/opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java
+++ b/opends/src/server/org/opends/server/replication/plugin/LDAPReplicationDomain.java
@@ -4264,13 +4264,25 @@
 
       if (lastRetrievedChange != null)
       {
+        if (debugEnabled())
+          TRACER.debugInfo("publish loop"
+                  + " >=" + currentStartCSN + " <=" + endCSN
+                  + " nentries=" + op.getEntriesSent()
+                  + " result=" + op.getResultCode()
+                  + " lastRetrievedChange=" + lastRetrievedChange);
         currentStartCSN = lastRetrievedChange;
       }
       else
       {
+        if (debugEnabled())
+          TRACER.debugInfo("publish loop"
+                  + " >=" + currentStartCSN + " <=" + endCSN
+                  + " nentries=" + op.getEntriesSent()
+                  + " result=" + op.getResultCode()
+                  + " no changes");
         currentStartCSN = endCSN;
       }
-    } while (pendingChanges.recoveryUntil(lastRetrievedChange)
+    } while (pendingChanges.recoveryUntil(currentStartCSN)
           && op.getResultCode().equals(ResultCode.SUCCESS));
 
     return op.getResultCode().equals(ResultCode.SUCCESS);

--
Gitblit v1.10.0