You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rj...@apache.org on 2015/03/31 07:22:50 UTC
svn commit: r1670257 [20/39] - in /lucene/dev/branches/lucene6271: ./
dev-tools/ dev-tools/idea/.idea/libraries/ dev-tools/scripts/ lucene/
lucene/analysis/ lucene/analysis/common/
lucene/analysis/common/src/java/org/apache/lucene/analysis/miscellaneou...
Modified: lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java (original)
+++ lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java Tue Mar 31 05:22:40 2015
@@ -39,7 +39,6 @@ import org.apache.solr.common.params.Upd
import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.CoreDescriptor;
import org.apache.solr.core.DirectoryFactory.DirContext;
-import org.apache.solr.core.RequestHandlers.LazyRequestHandlerWrapper;
import org.apache.solr.core.SolrCore;
import org.apache.solr.handler.ReplicationHandler;
import org.apache.solr.request.LocalSolrQueryRequest;
@@ -67,6 +66,7 @@ import java.util.concurrent.ExecutionExc
import java.util.concurrent.Future;
public class RecoveryStrategy extends Thread implements ClosableThread {
+ private static final int WAIT_FOR_UPDATES_WITH_STALE_STATE_PAUSE = Integer.getInteger("solr.cloud.wait-for-updates-with-stale-state-pause", 7000);
private static final int MAX_RETRIES = 500;
private static final int STARTING_RECOVERY_DELAY = 5000;
@@ -146,9 +146,6 @@ public class RecoveryStrategy extends Th
// use rep handler directly, so we can do this sync rather than async
SolrRequestHandler handler = core.getRequestHandler(REPLICATION_HANDLER);
- if (handler instanceof LazyRequestHandlerWrapper) {
- handler = ((LazyRequestHandlerWrapper) handler).getWrappedHandler();
- }
ReplicationHandler replicationHandler = (ReplicationHandler) handler;
if (replicationHandler == null) {
@@ -163,8 +160,7 @@ public class RecoveryStrategy extends Th
boolean success = replicationHandler.doFetch(solrParams, false);
if (!success) {
- throw new SolrException(ErrorCode.SERVER_ERROR,
- "Replication for recovery failed.");
+ throw new SolrException(ErrorCode.SERVER_ERROR, "Replication for recovery failed.");
}
// solrcloud_debug
@@ -182,7 +178,7 @@ public class RecoveryStrategy extends Th
+ " from "
+ leaderUrl
+ " gen:"
- + core.getDeletionPolicy().getLatestCommit().getGeneration()
+ + core.getDeletionPolicy().getLatestCommit() != null ? "null" : core.getDeletionPolicy().getLatestCommit().getGeneration()
+ " data:" + core.getDataDir()
+ " index:" + core.getIndexDir()
+ " newIndex:" + core.getNewIndexDir()
@@ -192,7 +188,7 @@ public class RecoveryStrategy extends Th
searchHolder.decref();
}
} catch (Exception e) {
- throw new SolrException(ErrorCode.SERVER_ERROR, null, e);
+ log.debug("Error in solrcloud_debug block", e);
}
}
@@ -263,7 +259,7 @@ public class RecoveryStrategy extends Th
UpdateLog.RecentUpdates recentUpdates = null;
try {
recentUpdates = ulog.getRecentUpdates();
- recentVersions = recentUpdates.getVersions(ulog.numRecordsToKeep);
+ recentVersions = recentUpdates.getVersions(ulog.getNumRecordsToKeep());
} catch (Exception e) {
SolrException.log(log, "Corrupt tlog - ignoring. core=" + coreName, e);
recentVersions = new ArrayList<>(0);
@@ -372,9 +368,10 @@ public class RecoveryStrategy extends Th
// we wait a bit so that any updates on the leader
// that started before they saw recovering state
- // are sure to have finished
+ // are sure to have finished (see SOLR-7141 for
+ // discussion around current value)
try {
- Thread.sleep(2000);
+ Thread.sleep(WAIT_FOR_UPDATES_WITH_STALE_STATE_PAUSE);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
@@ -386,7 +383,7 @@ public class RecoveryStrategy extends Th
// System.out.println("Attempting to PeerSync from " + leaderUrl
// + " i am:" + zkController.getNodeName());
PeerSync peerSync = new PeerSync(core,
- Collections.singletonList(leaderUrl), ulog.numRecordsToKeep, false, false);
+ Collections.singletonList(leaderUrl), ulog.getNumRecordsToKeep(), false, false);
peerSync.setStartingVersions(recentVersions);
boolean syncSuccess = peerSync.sync();
if (syncSuccess) {
@@ -411,7 +408,7 @@ public class RecoveryStrategy extends Th
searchHolder.decref();
}
} catch (Exception e) {
- throw new SolrException(ErrorCode.SERVER_ERROR, null, e);
+ log.debug("Error in solrcloud_debug block", e);
}
}
@@ -559,7 +556,7 @@ public class RecoveryStrategy extends Th
searchHolder.decref();
}
} catch (Exception e) {
- throw new SolrException(ErrorCode.SERVER_ERROR, null, e);
+ log.debug("Error in solrcloud_debug block", e);
}
}
Modified: lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/cloud/SolrZkServer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/cloud/SolrZkServer.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/cloud/SolrZkServer.java (original)
+++ lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/cloud/SolrZkServer.java Tue Mar 31 05:22:40 2015
@@ -17,6 +17,16 @@ package org.apache.solr.cloud;
* the License.
*/
+import org.apache.solr.common.SolrException;
+import org.apache.zookeeper.server.ServerConfig;
+import org.apache.zookeeper.server.ZooKeeperServerMain;
+import org.apache.zookeeper.server.quorum.QuorumPeer;
+import org.apache.zookeeper.server.quorum.QuorumPeerConfig;
+import org.apache.zookeeper.server.quorum.QuorumPeerMain;
+import org.apache.zookeeper.server.quorum.flexible.QuorumHierarchical;
+import org.apache.zookeeper.server.quorum.flexible.QuorumMaj;
+import org.slf4j.LoggerFactory;
+
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
@@ -27,18 +37,8 @@ import java.net.InetSocketAddress;
import java.net.UnknownHostException;
import java.nio.charset.StandardCharsets;
import java.util.Map;
-import java.util.Properties;
import java.util.Map.Entry;
-
-import org.apache.solr.common.SolrException;
-import org.apache.zookeeper.server.ServerConfig;
-import org.apache.zookeeper.server.ZooKeeperServerMain;
-import org.apache.zookeeper.server.quorum.QuorumPeer;
-import org.apache.zookeeper.server.quorum.QuorumPeerConfig;
-import org.apache.zookeeper.server.quorum.QuorumPeerMain;
-import org.apache.zookeeper.server.quorum.flexible.QuorumHierarchical;
-import org.apache.zookeeper.server.quorum.flexible.QuorumMaj;
-import org.slf4j.LoggerFactory;
+import java.util.Properties;
public class SolrZkServer {
@@ -47,7 +47,7 @@ public class SolrZkServer {
String zkRun;
String zkHost;
- String solrPort;
+ int solrPort;
Properties props;
SolrZkServerProps zkProps;
@@ -56,7 +56,7 @@ public class SolrZkServer {
private String dataHome;
private String confHome;
- public SolrZkServer(String zkRun, String zkHost, String dataHome, String confHome, String solrPort) {
+ public SolrZkServer(String zkRun, String zkHost, String dataHome, String confHome, int solrPort) {
this.zkRun = zkRun;
this.zkHost = zkHost;
this.dataHome = dataHome;
@@ -81,7 +81,7 @@ public class SolrZkServer {
// TODO: use something based on IP+port??? support ensemble all from same solr home?
zkProps.setDataDir(dataHome);
zkProps.zkRun = zkRun;
- zkProps.solrPort = solrPort;
+ zkProps.solrPort = Integer.toString(solrPort);
}
try {
@@ -89,7 +89,7 @@ public class SolrZkServer {
SolrZkServerProps.injectServers(props, zkRun, zkHost);
zkProps.parseProperties(props);
if (zkProps.getClientPortAddress() == null) {
- zkProps.setClientPort(Integer.parseInt(solrPort)+1000);
+ zkProps.setClientPort(solrPort + 1000);
}
} catch (QuorumPeerConfig.ConfigException | IOException e) {
if (zkRun != null)
Modified: lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java (original)
+++ lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/cloud/SyncStrategy.java Tue Mar 31 05:22:40 2015
@@ -163,7 +163,7 @@ public class SyncStrategy {
// if we can't reach a replica for sync, we still consider the overall sync a success
// TODO: as an assurance, we should still try and tell the sync nodes that we couldn't reach
// to recover once more?
- PeerSync peerSync = new PeerSync(core, syncWith, core.getUpdateHandler().getUpdateLog().numRecordsToKeep, true, true, peerSyncOnlyWithActive);
+ PeerSync peerSync = new PeerSync(core, syncWith, core.getUpdateHandler().getUpdateLog().getNumRecordsToKeep(), true, true, peerSyncOnlyWithActive);
return peerSync.sync();
}
Modified: lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java?rev=1670257&r1=1670256&r2=1670257&view=diff
==============================================================================
--- lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java (original)
+++ lucene/dev/branches/lucene6271/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java Tue Mar 31 05:22:40 2015
@@ -165,7 +165,7 @@ public class ZkCLI {
SolrZkServer zkServer = null;
if (solrPort != null) {
zkServer = new SolrZkServer("true", null, solrHome + "/zoo_data",
- solrHome, solrPort);
+ solrHome, Integer.parseInt(solrPort));
zkServer.parseConfig();
zkServer.start();
}