[
https://issues.apache.org/jira/browse/SOLR-3785?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13447733#comment-13447733
]
Per Steffensen commented on SOLR-3785:
--------------------------------------
{quote}
It's already watched by the Overseer. The change is to make the Overseer remove
leaders from ClusterState.json the same way it adds them.
{quote}
Hmmm, not in my version (revision 1355667 on 4.x branch), I guess??? I cant
find it in the code at least, but I might be wrong. The only thing I can see
Overseer watching is "/overseer/queue" (and "/overseer/queue-work"), and the
only ones I can find putting something in there is ZkController.publish and
ElectionContext.runLeaderProcess which seems to only be used on startup,
reconnect, recovery, leader-election etc, and not by any "leaders"-watcher. But
again, I might very well be wrong.
Fact is that clusterstate.json in ZK and clusterState on
CloudSolrServer.getZkStateReader().getCloudState() keeps reporting the shards
on the shut-down Solr as "active" (in revision 1355667 of 4.x branch).
Live-nodes in ZK and on CloudSolrServer.getZkStateReader().getCloudState()
reports the Solr down correctly.
Regards, Per Steffensen
> 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: [email protected]
For additional commands, e-mail: [email protected]