You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2013/12/29 00:19:03 UTC
svn commit: r1553967 - in /lucene/dev/trunk/solr: CHANGES.txt
core/src/java/org/apache/solr/cloud/Overseer.java
core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java
Author: markrmiller
Date: Sat Dec 28 23:19:03 2013
New Revision: 1553967
URL: http://svn.apache.org/r1553967
Log:
SOLR-5580: NPE when creating a core with both explicit shard and coreNodeName.
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/Overseer.java
lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1553967&r1=1553966&r2=1553967&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Sat Dec 28 23:19:03 2013
@@ -302,6 +302,9 @@ Bug Fixes
webcontainers / proxies. (Jakob Furrer, hossman, Shawn Heisey, Uwe Schindler,
Mark Miller)
+* SOLR-5580: NPE when creating a core with both explicit shard and coreNodeName.
+ (YouPeng Yang, Mark Miller)
+
Optimizations
----------------------
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/Overseer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/Overseer.java?rev=1553967&r1=1553966&r2=1553967&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/Overseer.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/Overseer.java Sat Dec 28 23:19:03 2013
@@ -442,18 +442,10 @@ public class Overseer {
// if coreNodeName is null, auto assign one
coreNodeName = Assign.assignNode(collection, state);
}
- message.getProperties().put(ZkStateReader.CORE_NODE_NAME_PROP, coreNodeName);
- } else {
- //probably, this core was removed explicitly
- if (sliceName !=null && collectionExists && !"true".equals(state.getCollection(collection).getStr("autoCreated"))) {
- Slice slice = state.getSlice(collection, sliceName);
- if (slice.getReplica(coreNodeName) == null) {
- log.info("core_deleted . Just return");
- return state;
- }
- }
-
+ message.getProperties().put(ZkStateReader.CORE_NODE_NAME_PROP,
+ coreNodeName);
}
+
// use the provided non null shardId
if (sliceName == null) {
//get shardId from ClusterState
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java?rev=1553967&r1=1553966&r2=1553967&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java Sat Dec 28 23:19:03 2013
@@ -34,6 +34,7 @@ import java.util.concurrent.Future;
import java.util.concurrent.SynchronousQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
import org.apache.commons.lang.StringUtils;
import org.apache.lucene.util.LuceneTestCase.Slow;
@@ -100,6 +101,8 @@ public class BasicDistributedZkTest exte
private String oneInstanceCollection = "oneInstanceCollection";
private String oneInstanceCollection2 = "oneInstanceCollection2";
+ private AtomicInteger nodeCounter = new AtomicInteger();
+
ThreadPoolExecutor executor = new ThreadPoolExecutor(0,
Integer.MAX_VALUE, 5, TimeUnit.SECONDS, new SynchronousQueue<Runnable>(),
new DefaultSolrThreadFactory("testExecutor"));
@@ -928,11 +931,16 @@ public class BasicDistributedZkTest exte
try {
server = new HttpSolrServer(baseUrl);
server.setConnectionTimeout(15000);
- server.setSoTimeout(60000);
Create createCmd = new Create();
createCmd.setRoles("none");
createCmd.setCoreName(collection + num);
createCmd.setCollection(collection);
+
+ if (random().nextBoolean()) {
+ // sometimes we use an explicit core node name
+ createCmd.setCoreNodeName("anode" + nodeCounter.incrementAndGet());
+ }
+
if (shardId == null) {
createCmd.setNumShards(2);
}