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/05/18 01:39:33 UTC

lucene-solr:jira/solr-10233: Fixed NPE in non-cloud cases

Repository: lucene-solr
Updated Branches:
  refs/heads/jira/solr-10233 30e305ef5 -> 5333577bf


Fixed NPE in non-cloud cases


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

Branch: refs/heads/jira/solr-10233
Commit: 5333577bfe8517278508aeba154a34acad777f74
Parents: 30e305e
Author: Tomas Fernandez Lobbe <tf...@apache.org>
Authored: Wed May 17 18:39:18 2017 -0700
Committer: Tomas Fernandez Lobbe <tf...@apache.org>
Committed: Wed May 17 18:39:18 2017 -0700

----------------------------------------------------------------------
 .../solr/update/processor/DistributedUpdateProcessor.java |  6 ++++--
 .../src/test/org/apache/solr/cloud/TestPullReplica.java   |  4 ++--
 .../apache/solr/cloud/TestPullReplicaErrorHandling.java   |  9 ++++++++-
 .../src/test/org/apache/solr/cloud/TestTlogReplica.java   | 10 +---------
 4 files changed, 15 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/5333577b/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java b/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
index 993f387..ec6e432 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
@@ -1918,8 +1918,10 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
         log.warn("Commit not supported on replicas of type " + Replica.Type.PULL);
       } else {
         // NRT replicas will always commit
-        long commitVersion = vinfo.getNewClock();
-        cmd.setVersion(commitVersion);
+        if (vinfo != null) {
+          long commitVersion = vinfo.getNewClock();
+          cmd.setVersion(commitVersion);
+        }
         doLocalCommit(cmd);
       }
     } else {

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/5333577b/solr/core/src/test/org/apache/solr/cloud/TestPullReplica.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestPullReplica.java b/solr/core/src/test/org/apache/solr/cloud/TestPullReplica.java
index e87d9cb..1cf4675 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestPullReplica.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestPullReplica.java
@@ -222,7 +222,7 @@ public class TestPullReplica extends SolrCloudTestCase {
     CollectionAdminRequest.createCollection(collectionName, "conf", 2, 1, 0, 0)
       .setMaxShardsPerNode(100)
       .process(cluster.getSolrClient());
-    cluster.getSolrClient().getZkStateReader().registerCore(collectionName); //TODO: Is this needed? 
+    cluster.getSolrClient().getZkStateReader().registerCore(collectionName); //TODO: Why is this needed? see SOLR-9440
     waitForState("Expected collection to be created with 2 shards and 1 replica each", collectionName, clusterShape(2, 1));
     DocCollection docCollection = assertNumberOfReplicas(2, 0, 0, false, true);
     assertEquals(2, docCollection.getSlices().size());
@@ -331,7 +331,7 @@ public class TestPullReplica extends SolrCloudTestCase {
     CollectionAdminRequest.createCollection(collectionName, "conf", 1, 1, 0, 1)
       .setMaxShardsPerNode(100)
       .process(cluster.getSolrClient());
-    cluster.getSolrClient().getZkStateReader().registerCore(collectionName); //TODO: Is this needed? 
+    cluster.getSolrClient().getZkStateReader().registerCore(collectionName); //TODO: Why is this needed? see SOLR-9440 
     waitForState("Expected collection to be created with 1 shard and 2 replicas", collectionName, clusterShape(1, 2));
     DocCollection docCollection = assertNumberOfReplicas(1, 0, 1, false, true);
     

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/5333577b/solr/core/src/test/org/apache/solr/cloud/TestPullReplicaErrorHandling.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestPullReplicaErrorHandling.java b/solr/core/src/test/org/apache/solr/cloud/TestPullReplicaErrorHandling.java
index 8d18bec..e2db839 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestPullReplicaErrorHandling.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestPullReplicaErrorHandling.java
@@ -54,7 +54,7 @@ import org.slf4j.LoggerFactory;
 @SuppressSSL(bugUrl = "https://issues.apache.org/jira/browse/SOLR-5776")
 public class TestPullReplicaErrorHandling extends SolrCloudTestCase {
   
-  private final static int REPLICATION_TIMEOUT_SECS = 10;
+  private final static int REPLICATION_TIMEOUT_SECS = 30;
   
   private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
   private static Map<URI, SocketProxy> proxies;
@@ -194,8 +194,15 @@ public class TestPullReplicaErrorHandling extends SolrCloudTestCase {
       }
       assertNumDocs(10, cluster.getSolrClient());
     } finally {
+      LOG.info("Opening leader node");
       proxy.reopen();
     }
+    // Back to normal
+    addDocs(20);
+    assertNumDocs(20, cluster.getSolrClient());
+    try (HttpSolrClient pullReplicaClient = getHttpSolrClient(s.getReplicas(EnumSet.of(Replica.Type.PULL)).get(0).getCoreUrl())) {
+      assertNumDocs(20, pullReplicaClient);
+    }
   }
   
   public void testPullReplicaDisconnectsFromZooKeeper() throws Exception {

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/5333577b/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 d228140..a4070b3 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestTlogReplica.java
@@ -384,14 +384,6 @@ public class TestTlogReplica extends SolrCloudTestCase {
     waitForNumDocsInAllActiveReplicas(2);
   }
   
-  public void testSearchWhileReplicationHappens() {
-      
-  }
-  
-  public void testReplication() {
-    // Validate incremental replication
-  }
-  
   public void testOnlyLeaderIndexes() throws Exception {
     createAndWaitForCollection(1, 0, 2, 0);
     
@@ -647,7 +639,7 @@ public class TestTlogReplica extends SolrCloudTestCase {
     .setMaxShardsPerNode(100)
     .process(cluster.getSolrClient());
     int numReplicasPerShard = numNrtReplicas + numTlogReplicas + numPullReplicas;
-    cluster.getSolrClient().getZkStateReader().registerCore(collectionName); //TODO: Is this needed? 
+    cluster.getSolrClient().getZkStateReader().registerCore(collectionName); //TODO: Why is this needed? see SOLR-9440 
     waitForState("Expected collection to be created with " + numShards + " shards and  " + numReplicasPerShard + " replicas", 
         collectionName, clusterShape(numShards, numReplicasPerShard));
     return assertNumberOfReplicas(numNrtReplicas*numShards, numTlogReplicas*numShards, numPullReplicas*numShards, false, true);