You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sh...@apache.org on 2014/06/25 14:15:11 UTC
svn commit: r1605366 - in /lucene/dev/branches/branch_4x: ./ solr/
solr/CHANGES.txt solr/core/
solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java
solr/core/src/test/org/apache/solr/cloud/MigrateRouteKeyTest.java
Author: shalin
Date: Wed Jun 25 12:15:11 2014
New Revision: 1605366
URL: http://svn.apache.org/r1605366
Log:
SOLR-6197: The MIGRATE collection API doesn't work when legacyCloud=false is set in cluster properties
Modified:
lucene/dev/branches/branch_4x/ (props changed)
lucene/dev/branches/branch_4x/solr/ (props changed)
lucene/dev/branches/branch_4x/solr/CHANGES.txt (contents, props changed)
lucene/dev/branches/branch_4x/solr/core/ (props changed)
lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java
lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/cloud/MigrateRouteKeyTest.java
Modified: lucene/dev/branches/branch_4x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/CHANGES.txt?rev=1605366&r1=1605365&r2=1605366&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/solr/CHANGES.txt Wed Jun 25 12:15:11 2014
@@ -36,6 +36,9 @@ Bug Fixes
* SOLR-6189: Avoid publishing the state as down if the node is not live when determining
if a replica should be in leader-initiated recovery. (Timothy Potter)
+* SOLR-6197: The MIGRATE collection API doesn't work when legacyCloud=false is set
+ in cluster properties. (shalin)
+
Other Changes
---------------------
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java?rev=1605366&r1=1605365&r2=1605366&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java Wed Jun 25 12:15:11 2014
@@ -1744,7 +1744,8 @@ public class OverseerCollectionProcessor
for (Slice sourceSlice : sourceSlices) {
for (Slice targetSlice : targetSlices) {
log.info("Migrating source shard: {} to target shard: {} for split.key = " + splitKey, sourceSlice, targetSlice);
- migrateKey(clusterState, sourceCollection, sourceSlice, targetCollection, targetSlice, splitKey, timeout, results, asyncId);
+ migrateKey(clusterState, sourceCollection, sourceSlice, targetCollection, targetSlice, splitKey,
+ timeout, results, asyncId, message);
}
}
}
@@ -1752,7 +1753,7 @@ public class OverseerCollectionProcessor
private void migrateKey(ClusterState clusterState, DocCollection sourceCollection, Slice sourceSlice,
DocCollection targetCollection, Slice targetSlice,
String splitKey, int timeout,
- NamedList results, String asyncId) throws KeeperException, InterruptedException {
+ NamedList results, String asyncId, ZkNodeProps message) throws KeeperException, InterruptedException {
String tempSourceCollectionName = "split_" + sourceSlice.getName() + "_temp_" + targetSlice.getName();
if (clusterState.hasCollection(tempSourceCollectionName)) {
log.info("Deleting temporary collection: " + tempSourceCollectionName);
@@ -1895,15 +1896,25 @@ public class OverseerCollectionProcessor
log.info("Creating a replica of temporary collection: {} on the target leader node: {}",
tempSourceCollectionName, targetLeader.getNodeName());
- params = new ModifiableSolrParams();
- params.set(CoreAdminParams.ACTION, CoreAdminAction.CREATE.toString());
String tempCollectionReplica2 = tempSourceCollectionName + "_" + tempSourceSlice.getName() + "_replica2";
- params.set(CoreAdminParams.NAME, tempCollectionReplica2);
- params.set(CoreAdminParams.COLLECTION, tempSourceCollectionName);
- params.set(CoreAdminParams.SHARD, tempSourceSlice.getName());
+ props = new HashMap<>();
+ props.put(Overseer.QUEUE_OPERATION, ADDREPLICA.toLower());
+ props.put(COLLECTION_PROP, tempSourceCollectionName);
+ props.put(SHARD_ID_PROP, tempSourceSlice.getName());
+ props.put("node", targetLeader.getNodeName());
+ props.put(CoreAdminParams.NAME, tempCollectionReplica2);
+ // copy over property params:
+ for (String key : message.keySet()) {
+ if (key.startsWith(COLL_PROP_PREFIX)) {
+ props.put(key, message.getStr(key));
+ }
+ }
+ // add async param
+ if(asyncId != null) {
+ props.put(ASYNC, asyncId);
+ }
+ addReplica(clusterState, new ZkNodeProps(props), results);
- setupAsyncRequest(asyncId, requestMap, params, targetLeader.getNodeName());
- sendShardRequest(targetLeader.getNodeName(), params, shardHandler);
collectShardResponses(results, true,
"MIGRATE failed to create replica of temporary collection in target leader node.",
shardHandler);
Modified: lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/cloud/MigrateRouteKeyTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/cloud/MigrateRouteKeyTest.java?rev=1605366&r1=1605365&r2=1605366&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/cloud/MigrateRouteKeyTest.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/cloud/MigrateRouteKeyTest.java Wed Jun 25 12:15:11 2014
@@ -90,6 +90,10 @@ public class MigrateRouteKeyTest extends
public void doTest() throws Exception {
waitForThingsToLevelOut(15);
+ if (usually()) {
+ log.info("Using legacyCloud=false for cluster");
+ CollectionsAPIDistributedZkTest.setClusterProp(cloudClient, "legacyCloud", "false");
+ }
multipleShardMigrateTest();
printLayout();
}