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 2014/01/06 05:44:14 UTC
svn commit: r1555661 - in /lucene/dev/branches/lucene_solr_4_6: ./ solr/
solr/CHANGES.txt solr/core/
solr/core/src/java/org/apache/solr/cloud/ZkController.java
Author: markrmiller
Date: Mon Jan 6 04:44:14 2014
New Revision: 1555661
URL: http://svn.apache.org/r1555661
Log:
SOLR-5608: Don't allow a closed SolrCore to publish state to ZooKeeper.
Modified:
lucene/dev/branches/lucene_solr_4_6/ (props changed)
lucene/dev/branches/lucene_solr_4_6/solr/ (props changed)
lucene/dev/branches/lucene_solr_4_6/solr/CHANGES.txt (contents, props changed)
lucene/dev/branches/lucene_solr_4_6/solr/core/ (props changed)
lucene/dev/branches/lucene_solr_4_6/solr/core/src/java/org/apache/solr/cloud/ZkController.java
Modified: lucene/dev/branches/lucene_solr_4_6/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_4_6/solr/CHANGES.txt?rev=1555661&r1=1555660&r2=1555661&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_4_6/solr/CHANGES.txt (original)
+++ lucene/dev/branches/lucene_solr_4_6/solr/CHANGES.txt Mon Jan 6 04:44:14 2014
@@ -97,6 +97,9 @@ Bug Fixes
* SOLR-5564: hl.maxAlternateFieldLength should apply to original field when
fallback is attempted (janhoy)
+* SOLR-5608: Don't allow a closed SolrCore to publish state to ZooKeeper.
+ (Mark Miller, Shawn Heisey)
+
Optimizations
----------------------
Modified: lucene/dev/branches/lucene_solr_4_6/solr/core/src/java/org/apache/solr/cloud/ZkController.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene_solr_4_6/solr/core/src/java/org/apache/solr/cloud/ZkController.java?rev=1555661&r1=1555660&r2=1555661&view=diff
==============================================================================
--- lucene/dev/branches/lucene_solr_4_6/solr/core/src/java/org/apache/solr/cloud/ZkController.java (original)
+++ lucene/dev/branches/lucene_solr_4_6/solr/core/src/java/org/apache/solr/cloud/ZkController.java Mon Jan 6 04:44:14 2014
@@ -1000,10 +1000,27 @@ public final class ZkController {
publish(cd, state, true);
}
+ public void publish(final CoreDescriptor cd, final String state, boolean updateLastState) throws KeeperException, InterruptedException {
+ publish(cd, state, true, false);
+ }
+
/**
* Publish core state to overseer.
*/
- public void publish(final CoreDescriptor cd, final String state, boolean updateLastState) throws KeeperException, InterruptedException {
+ public void publish(final CoreDescriptor cd, final String state, boolean updateLastState, boolean forcePublish) throws KeeperException, InterruptedException {
+ if (!forcePublish) {
+ SolrCore core = cc.getCore(cd.getName());
+ if (core == null) {
+ return;
+ }
+ try {
+ if (core.isClosed()) {
+ return;
+ }
+ } finally {
+ core.close();
+ }
+ }
log.info("publishing core={} state={}", cd.getName(), state);
//System.out.println(Thread.currentThread().getStackTrace()[3]);
Integer numShards = cd.getCloudDescriptor().getNumShards();
@@ -1359,7 +1376,7 @@ public final class ZkController {
cloudDesc.setCoreNodeName(coreNodeName);
}
- publish(cd, ZkStateReader.DOWN, false);
+ publish(cd, ZkStateReader.DOWN, false, true);
} catch (KeeperException e) {
log.error("", e);
throw new ZooKeeperException(SolrException.ErrorCode.SERVER_ERROR, "", e);