You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by tf...@apache.org on 2017/03/08 22:31:49 UTC

[6/6] lucene-solr:jira/solr-10233: Make waitForInSyncWithLeader more stable in different test enviroments

Make waitForInSyncWithLeader more stable in different test enviroments


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/429411ca
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/429411ca
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/429411ca

Branch: refs/heads/jira/solr-10233
Commit: 429411ca5d3d2e24a2956ee7525e2ca3fcd28d99
Parents: 043d5cb
Author: Cao Manh Dat <da...@apache.org>
Authored: Wed Mar 8 16:03:11 2017 +0700
Committer: Tomas Fernandez Lobbe <tf...@apache.org>
Committed: Wed Mar 8 13:57:55 2017 -0800

----------------------------------------------------------------------
 .../core/src/java/org/apache/solr/util/TestInjection.java | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/429411ca/solr/core/src/java/org/apache/solr/util/TestInjection.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/util/TestInjection.java b/solr/core/src/java/org/apache/solr/util/TestInjection.java
index a1e77e5..bc80683 100644
--- a/solr/core/src/java/org/apache/solr/util/TestInjection.java
+++ b/solr/core/src/java/org/apache/solr/util/TestInjection.java
@@ -18,8 +18,10 @@ package org.apache.solr.util;
 
 import java.lang.invoke.MethodHandles;
 import java.lang.reflect.Method;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Random;
 import java.util.Set;
 import java.util.Timer;
@@ -41,6 +43,7 @@ import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.Pair;
 import org.apache.solr.core.CoreContainer;
 import org.apache.solr.core.SolrCore;
+import org.apache.solr.handler.RealTimeGetHandler;
 import org.apache.solr.handler.ReplicationHandler;
 import org.apache.solr.update.SolrIndexWriter;
 import org.slf4j.Logger;
@@ -365,8 +368,7 @@ public class TestInjection {
     Pair<Boolean,Integer> pair = parseValue(waitForReplicasInSync);
     boolean enabled = pair.first();
     if (!enabled) return true;
-
-    Thread.sleep(1000);
+    long t = System.currentTimeMillis() - 100;
     try {
       for (int i = 0; i < pair.second(); i++) {
         if (core.isClosed()) return true;
@@ -381,8 +383,8 @@ public class TestInjection {
           long leaderVersion = (long) ((NamedList)response.get("details")).get("indexVersion");
 
           String localVersion = core.getDeletionPolicy().getLatestCommit().getUserData().get(SolrIndexWriter.COMMIT_TIME_MSEC_KEY);
-          if (localVersion == null && leaderVersion == 0) return true;
-          if (localVersion != null && Long.parseLong(localVersion) == leaderVersion) {
+          if (localVersion == null && leaderVersion == 0 && !core.getUpdateHandler().getUpdateLog().hasUncommittedChanges()) return true;
+          if (localVersion != null && Long.parseLong(localVersion) == leaderVersion && leaderVersion >= t) {
             return true;
           } else {
             Thread.sleep(500);