You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Ray Cheng <rc...@rocketmail.com> on 2014/01/20 05:39:24 UTC

SolrCloud doesn't clear some nodes in /clusterstate.json from ZooKeeper

We're testing SolrCloud of Solr 4.6.0 with external ZooKeeper on Amazon AWS instances (virtual machines). Amazon virtual machine's private IP addresses of SolrCloud machines are different every time we create virtual machines (AWS terminology "instances"). I found after these start/terminates of Amazon AWS instances (virtual machines), SolrCloud (or ZooKeeper ) would, as expected, clear "core_nodes" for most collections of previous instances/virtual machines. ZooKeeper zkCli.sh command
get /clusterstate.json returns this (only copy-paste collection "samplecollection1")

  "samplecollection1":{
    "shards":{"shard1":{
        "range":"80000000-7fffffff",
        "state":"active",
        "replicas":{
          "core_node1":{
            "state":"active",
            "base_url":"http://172.31.15.5:8983/solr",
            "core":"samplecollection1_shard1_replica2",
            "node_name":"172.31.15.5:8983_solr",
            "leader":"true"},
          "core_node2":{
            "state":"active",
            "base_url":"http://172.31.42.34:8983/solr",
            "core":"samplecollection1_shard1_replica1",
            "node_name":"172.31.42.34:8983_solr"}}}},
    "maxShardsPerNode":"1",
    "router":{"name":"compositeId"},
    "replicationFactor":"2"},

However, SolrCloud didn't clear "core_nodes" for collection "collection1" of previous instances/virtual machines. ZooKeeper zkCli.sh command
get /clusterstate.json returns this from collection :

  "collection1":{
    "shards":{"shard1":{
        "range":null,
        "state":"active",
        "parent":null,
        "replicas":{
          "core_node1":{
            "state":"down",
            "base_url":"http://172.31.14.244:8983/solr",
            "core":"collection1",
            "node_name":"172.31.14.244:8983_solr"},
          "core_node2":{
            "state":"down",
            "base_url":"http://172.31.0.89:8983/solr",
            "core":"collection1",
            "node_name":"172.31.0.89:8983_solr"},
          "core_node3":{
            "state":"down",
            "base_url":"http://172.31.75.155:8983/solr",
            "core":"collection1",
            "node_name":"54.213.175.155:8983_solr"},
          "core_node4":{
            "state":"down",
            "base_url":"http://172.31.7.30:8983/solr",
            "core":"collection1",
            "node_name":"54.213.207.30:8983_solr"},
          "core_node5":{
            "state":"down",
            "base_url":"http://172.31.13.107:8983/solr",
            "core":"collection1",
            "node_name":"172.31.13.107:8983_solr"},
          "core_node6":{
            "state":"down",
            "base_url":"http://172.31.8.219:8983/solr",
            "core":"collection1",
            "node_name":"172.31.8.219:8983_solr"},
          "core_node7":{
            "state":"down",
            "base_url":"http://172.31.22.88:8983/solr",
            "core":"collection1",
            "node_name":"172.31.22.88:8983_solr"},
          "core_node8":{
            "state":"active",
            "base_url":"http://172.31.10.141:8983/solr",
            "core":"collection1",
            "node_name":"172.31.10.141:8983_solr"},
          "core_node9":{
            "state":"active",
            "base_url":"http://172.31.3.230:8983/solr",
            "core":"collection1",
            "node_name":"172.31.3.230:8983_solr"},
          "core_node10":{
            "state":"active",
            "base_url":"http://172.31.4.86:8983/solr",
            "core":"collection1",
            "node_name":"172.31.4.86:8983_solr"},
          "core_node11":{
            "state":"active",
            "base_url":"http://172.31.9.191:8983/solr",
            "core":"collection1",
            "node_name":"172.31.9.191:8983_solr"},
          "core_node12":{
            "state":"down",
            "base_url":"http://172.31.35.113:8983/solr",
            "core":"collection1",
            "node_name":"172.31.35.113:8983_solr"},
          "core_node13":{
            "state":"active",
            "base_url":"http://172.31.37.142:8983/solr",
            "core":"collection1",
            "node_name":"172.31.37.142:8983_solr"},
          "core_node14":{
            "state":"down",
            "base_url":"http://172.31.47.68:8983/solr",
            "core":"collection1",
            "node_name":"172.31.47.68:8983_solr"},
          "core_node15":{
            "state":"down",
            "base_url":"http://172.31.14.233:8983/solr",
            "core":"collection1",
            "node_name":"172.31.14.233:8983_solr"},
          "core_node16":{
            "state":"active",
            "base_url":"http://172.31.0.246:8983/solr",
            "core":"collection1",
            "node_name":"172.31.0.246:8983_solr",
            "leader":"true"},
          "core_node17":{
            "state":"active",
            "base_url":"http://172.31.45.97:8983/solr",
            "core":"collection1",
            "node_name":"172.31.45.97:8983_solr"}}}},
    "router":{"name":"implicit"}},


Is this a user error or could it be a bug in SolrCloud?

( We start SolrCloud leader like this: (I modified the public IP addresses for security reason.)

/usr/bin/java -Djetty.port=8983 -DnumShards=1 -Dbootstrap_confdir=/opt/indexer/solr/example/solr/collection1/conf -Dcollection.configName=commonsolrconfig -DzkHost=ec2-53-100-173-46.us-west-2.compute.amazonaws.com:2181,ec2-53-212-53-31.us-west-2.compute.amazonaws.com:2181,ec2-53-101-64-48.us-west-2.compute.amazonaws.com:2181 -Djetty.state=/opt/indexer/solr/example/jetty.state -Djetty.logs=/opt/log -Djetty.home=/opt/indexer/solr/example -Djava.io.tmpdir=/tmp -jar /opt/indexer/solr/example/start.jar

So, "collection1" is a special collection from where we load conf/ directory to ZooKeeper. The core.properties file contains only "name=collection1". 
We create other collections on the fly. During tests we terminated and started Amazon AWS instances several times (and got different private IP's every time).  )

Thanks,
Ray