From 9b46f41aa23bb664d7126aa93d7bbc6c81234e5a Mon Sep 17 00:00:00 2001 From: Shalin Shekhar Mangar Date: Sun, 9 Feb 2014 19:59:58 +0000 Subject: [PATCH] SOLR-5710: Migrate collection command does not handle not finding a shard leader well git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1566385 13f79535-47bb-0310-9956-ffa450edef68 --- solr/CHANGES.txt | 4 ++-- .../org/apache/solr/cloud/OverseerCollectionProcessor.java | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index 89bf8b3229b..0b59a79c259 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -78,8 +78,8 @@ Detailed Change List New Features ---------------------- -* SOLR-5308: SOLR-5601: A new 'migrate' collection API to split all documents with a - route key into another collection (shalin) +* SOLR-5308: SOLR-5601: SOLR-5710: A new 'migrate' collection API to split all + documents with a route key into another collection (shalin) * SOLR-5441: Expose number of transaction log files and their size via JMX. (Rafał Kuć via shalin) diff --git a/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java b/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java index 6d8c090cfcc..f1abce6837f 100644 --- a/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java +++ b/solr/core/src/java/org/apache/solr/cloud/OverseerCollectionProcessor.java @@ -1353,7 +1353,7 @@ public class OverseerCollectionProcessor implements Runnable, ClosableThread { } log.info("Common hash range between source shard: {} and target shard: {} = " + splitRange, sourceSlice.getName(), targetSlice.getName()); - Replica targetLeader = targetSlice.getLeader(); + Replica targetLeader = zkStateReader.getLeaderRetry(targetCollection.getName(), targetSlice.getName(), 10000); log.info("Asking target leader node: " + targetLeader.getNodeName() + " core: " + targetLeader.getStr("core") + " to buffer updates"); @@ -1397,7 +1397,7 @@ public class OverseerCollectionProcessor implements Runnable, ClosableThread { log.info("Routing rule added successfully"); // Create temp core on source shard - Replica sourceLeader = sourceSlice.getLeader(); + Replica sourceLeader = zkStateReader.getLeaderRetry(sourceCollection.getName(), sourceSlice.getName(), 10000); // create a temporary collection with just one node on the shard leader String configName = zkStateReader.readConfigName(sourceCollection.getName()); @@ -1413,7 +1413,7 @@ public class OverseerCollectionProcessor implements Runnable, ClosableThread { // refresh cluster state clusterState = zkStateReader.getClusterState(); Slice tempSourceSlice = clusterState.getCollection(tempSourceCollectionName).getSlices().iterator().next(); - Replica tempSourceLeader = zkStateReader.getLeaderRetry(tempSourceCollectionName, tempSourceSlice.getName(), 60000); + Replica tempSourceLeader = zkStateReader.getLeaderRetry(tempSourceCollectionName, tempSourceSlice.getName(), 120000); String tempCollectionReplica1 = tempSourceCollectionName + "_" + tempSourceSlice.getName() + "_replica1"; String coreNodeName = waitForCoreNodeName(clusterState.getCollection(tempSourceCollectionName),