You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by da...@apache.org on 2018/05/21 02:06:09 UTC

lucene-solr:branch_7x: SOLR-10841: TestTlogReplica.testRecovery sometimes fails

Repository: lucene-solr
Updated Branches:
  refs/heads/branch_7x 97490ac7c -> e01a14102


SOLR-10841: TestTlogReplica.testRecovery sometimes fails


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

Branch: refs/heads/branch_7x
Commit: e01a14102d55eeeb40afc753890a5f5897c8b409
Parents: 97490ac
Author: Cao Manh Dat <da...@apache.org>
Authored: Mon May 21 09:05:13 2018 +0700
Committer: Cao Manh Dat <da...@apache.org>
Committed: Mon May 21 09:05:59 2018 +0700

----------------------------------------------------------------------
 .../test/org/apache/solr/cloud/TestTlogReplica.java | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/e01a1410/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java b/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java
index 0ea9d03..87cdf0b 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java
@@ -593,14 +593,26 @@ public class TestTlogReplica extends SolrCloudTestCase {
     }
     ChaosMonkey.start(solrRunner);
     waitingForReplay.acquire();
+    // If I add the doc immediately, the leader fails to communicate with the follower with broken pipe.
+    // Options are, wait or retry...
+    for (int i = 0; i < 3; i++) {
+      UpdateRequest ureq = new UpdateRequest().add(sdoc("id", "8"));
+      ureq.setParam("collection", collectionName);
+      ureq.setParam(UpdateRequest.MIN_REPFACT, "2");
+      NamedList<Object> response = cloudClient.request(ureq);
+      if ((Integer)((NamedList<Object>)response.get("responseHeader")).get(UpdateRequest.REPFACT) >= 2) {
+        break;
+      }
+      LOG.info("Min RF not achieved yet. retrying");
+    }
     new UpdateRequest()
-        .add(sdoc("id", "8"))
         .add(sdoc("id", "9"))
+        .add(sdoc("id", "10"))
         .process(cloudClient, collectionName);
     waitingForBufferUpdates.release();
     RecoveryStrategy.testing_beforeReplayBufferingUpdates = null;
     waitForState("Replica didn't recover", collectionName, activeReplicaCount(0,2,0));
-    checkRTG(3,9, cluster.getJettySolrRunners());
+    checkRTG(3,10, cluster.getJettySolrRunners());
     for (SolrCore solrCore : getSolrCore(false)) {
       RefCounted<IndexWriter> iwRef = solrCore.getUpdateHandler().getSolrCoreState().getIndexWriter(null);
       assertFalse("IndexWriter at replicas must not see updates ", iwRef.get().hasUncommittedChanges());