[ 
https://issues.apache.org/jira/browse/SOLR-3785?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13447717#comment-13447717
 ] 

Sami Siren commented on SOLR-3785:
----------------------------------

bq. The overseer watches /leaders I believe - and publishes results to the 
clusterstate.json.

The leader is announced by the new shard leader 
(ShardLeaderElectionContextBase). It adds the "leader" type of even with the 
required details into overseer queue. There are no watches related to this in 
overseer atm. Looks like we need to add one so that the leader=true can be 
cleared by overseer from clusterstate.json when the leader nodes change/go away.

perhaps we could also rearrange the hierarchy slightly so that we could get 
away with only 1 watch:

/leaders/<collection-name>-<slice-name>

                
> Cluster-state inconsistent
> --------------------------
>
>                 Key: SOLR-3785
>                 URL: https://issues.apache.org/jira/browse/SOLR-3785
>             Project: Solr
>          Issue Type: Bug
>          Components: SolrCloud
>    Affects Versions: 4.0
>         Environment: Self-build Solr release built on Apache Solr revision 
> 1355667 from 4.x branch
>            Reporter: Per Steffensen
>
> Information in CloudSolrServer.getZkStateReader().getCloudState() (called 
> cloudState below) seems to be inconsistent. 
> I have a Solr running the leader of slice "sliceName" in collection 
> "collectionName" - no replica to take over. I shut down this Solr, and I want 
> to detect that there is now no leader active. 
> I do e.g.
> {code}
> ZkNodeProps leader = cloudState.getLeader(indexName, sliceName);
> boolean notActive = (leader == null) || 
> !leader.containsKey(ZkStateReader.STATE_PROP) || 
> !leader.get(ZkStateReader.STATE_PROP).equals(ZkStateReader.ACTIVE);
> {code}
> This does not work. It seems like changing state of a shard does it not 
> changed when this Solr goes down.
> I do e.g.
> {code}
> ZkNodeProps leader = cloudState.getLeader(indexName, sliceName);
> boolean notActive = (leader == null) || 
> !leader.containsKey(ZkStateReader.STATE_PROP) || 
> !leader.get(ZkStateReader.STATE_PROP).equals(ZkStateReader.ACTIVE) ||
> !leader.containsKey(ZkStateReader.NODE_NAME_PROP) || 
> !cloudState.getLiveNodes().contains(leader.get(ZkStateReader.NODE_NAME_PROP))
> {code}
> Whis works.
> It seems like live-nodes of cloudState is updated when Solr goes down, but 
> that some of the other info available through cloudState is not - e.g. 
> getLeader().
> This might already have already been solved on 4.x branch in a revision later 
> than 1355667. Then please just tell me - thanks.
> Regards, Per Steffensen

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to