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 2012/11/29 15:57:23 UTC
svn commit: r1415191 - in /lucene/dev/branches/branch_4x/solr:
core/src/java/org/apache/solr/cloud/ core/src/java/org/apache/solr/core/
solrj/src/java/org/apache/solr/common/cloud/
Author: markrmiller
Date: Thu Nov 29 14:57:22 2012
New Revision: 1415191
URL: http://svn.apache.org/viewvc?rev=1415191&view=rev
Log:
SOLR-4125: There are a few small changes in 5x that should be in 4x but are not.
Modified:
lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java
lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/ZkController.java
lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrCore.java
lucene/dev/branches/branch_4x/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java
lucene/dev/branches/branch_4x/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java?rev=1415191&r1=1415190&r2=1415191&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java Thu Nov 29 14:57:22 2012
@@ -239,10 +239,17 @@ final class ShardLeaderElectionContext e
} catch (Throwable t) {
try {
core = cc.getCore(coreName);
+ if (core == null) {
+ cancelElection();
+ throw new SolrException(ErrorCode.SERVER_ERROR,
+ "Fatal Error, SolrCore not found:" + coreName + " in "
+ + cc.getCoreNames());
+ }
+
core.getCoreDescriptor().getCloudDescriptor().isLeader = false;
// we could not publish ourselves as leader - rejoin election
- rejoinLeaderElection(coreName, core);
+ rejoinLeaderElection(leaderSeqPath, core);
} finally {
if (core != null) {
core.close();
@@ -348,12 +355,15 @@ final class ShardLeaderElectionContext e
return false;
}
- if (core.getCoreDescriptor().getCloudDescriptor().getLastPublished().equals(ZkStateReader.ACTIVE)) {
+ if (core.getCoreDescriptor().getCloudDescriptor().getLastPublished()
+ .equals(ZkStateReader.ACTIVE)) {
log.info("My last published State was Active, it's okay to be the leader.");
return true;
}
-
-// TODO: and if no is a good candidate?
+ log.info("My last published State was "
+ + core.getCoreDescriptor().getCloudDescriptor().getLastPublished()
+ + ", I won't be the leader.");
+ // TODO: and if no one is a good candidate?
return false;
}
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/ZkController.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/ZkController.java?rev=1415191&r1=1415190&r2=1415191&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/ZkController.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/cloud/ZkController.java Thu Nov 29 14:57:22 2012
@@ -195,8 +195,6 @@ public final class ZkController {
ElectionContext context = new OverseerElectionContext(zkClient, overseer, getNodeName());
overseerElector.joinElection(context, true);
zkStateReader.createClusterStateWatchersAndUpdate();
-
- // cc.newCmdDistribExecutor();
// we have to register as live first to pick up docs in the buffer
createEphemeralLiveNode();
@@ -310,7 +308,11 @@ public final class ZkController {
}
for (ElectionContext context : electionContexts.values()) {
- context.close();
+ try {
+ context.close();
+ } catch (Throwable t) {
+ log.error("Error closing overseer", t);
+ }
}
try {
Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrCore.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrCore.java?rev=1415191&r1=1415190&r2=1415191&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrCore.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/SolrCore.java Thu Nov 29 14:57:22 2012
@@ -911,11 +911,14 @@ public final class SolrCore implements S
SolrException.log(log,e);
}
-
- if (updateHandler instanceof IndexWriterCloser) {
- decrefSolrCoreState((IndexWriterCloser)updateHandler);
- } else {
- decrefSolrCoreState(null);
+ try {
+ if (updateHandler instanceof IndexWriterCloser) {
+ decrefSolrCoreState((IndexWriterCloser) updateHandler);
+ } else {
+ decrefSolrCoreState(null);
+ }
+ } catch (Throwable e) {
+ SolrException.log(log, e);
}
try {
Modified: lucene/dev/branches/branch_4x/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java?rev=1415191&r1=1415190&r2=1415191&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java (original)
+++ lucene/dev/branches/branch_4x/solr/solrj/src/java/org/apache/solr/common/cloud/ClusterState.java Thu Nov 29 14:57:22 2012
@@ -70,6 +70,7 @@ public class ClusterState implements JSO
*/
public ClusterState(Integer zkClusterStateVersion, Set<String> liveNodes,
Map<String, Map<String,Slice>> collectionStates) {
+ this.zkClusterStateVersion = zkClusterStateVersion;
this.liveNodes = new HashSet<String>(liveNodes.size());
this.liveNodes.addAll(liveNodes);
this.collectionStates = new HashMap<String, Map<String,Slice>>(collectionStates.size());
Modified: lucene/dev/branches/branch_4x/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java?rev=1415191&r1=1415190&r2=1415191&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java (original)
+++ lucene/dev/branches/branch_4x/solr/solrj/src/java/org/apache/solr/common/cloud/ZkStateReader.java Thu Nov 29 14:57:22 2012
@@ -197,9 +197,13 @@ public class ZkStateReader {
Stat stat = new Stat();
byte[] data = zkClient.getData(CLUSTER_STATE, thisWatch, stat ,
true);
-
- ClusterState clusterState = ClusterState.load(stat.getVersion(), data,
- ZkStateReader.this.clusterState.getLiveNodes());
+ List<String> liveNodes = zkClient.getChildren(
+ LIVE_NODES_ZKNODE, this, true);
+
+ Set<String> liveNodesSet = new HashSet<String>();
+ liveNodesSet.addAll(liveNodes);
+ Set<String> ln = ZkStateReader.this.clusterState.getLiveNodes();
+ ClusterState clusterState = ClusterState.load(stat.getVersion(), data, ln);
// update volatile
ZkStateReader.this.clusterState = clusterState;
}
@@ -301,9 +305,9 @@ public class ZkStateReader {
ZkStateReader.this.clusterState.getZkClusterStateVersion(), liveNodesSet,
ZkStateReader.this.clusterState.getCollectionStates());
}
+ this.clusterState = clusterState;
}
- this.clusterState = clusterState;
} else {
if (clusterStateUpdateScheduled) {
log.info("Cloud state update for ZooKeeper already scheduled");
@@ -330,7 +334,7 @@ public class ZkStateReader {
clusterState = ClusterState.load(zkClient, liveNodesSet);
} else {
log.info("Updating live nodes from ZooKeeper... ");
- clusterState = new ClusterState(ZkStateReader.this.clusterState .getZkClusterStateVersion(), liveNodesSet, ZkStateReader.this.clusterState.getCollectionStates());
+ clusterState = new ClusterState(ZkStateReader.this.clusterState.getZkClusterStateVersion(), liveNodesSet, ZkStateReader.this.clusterState.getCollectionStates());
}
ZkStateReader.this.clusterState = clusterState;