You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Hoss Man (JIRA)" <ji...@apache.org> on 2016/03/17 20:22:33 UTC

[jira] [Updated] (SOLR-8862) /live_nodes is populated too early to be very useful for clients -- CloudSolrClient (and MiniSolrCloudCluster.createCollection) need some other ephemeral zk node to knowwhich servers are "ready"

     [ https://issues.apache.org/jira/browse/SOLR-8862?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Hoss Man updated SOLR-8862:
---------------------------
    Description: 
{{/live_nodes}} is populated surprisingly early (and multiple times) in the life cycle of a sole node startup, and as a result probably shouldn't be used by {{CloudSolrClient}} (or other "smart" clients) for deciding what servers are fair game for requests.

we should either fix {{/live_nodes}} to be created later in the lifecycle, or add some new ZK node for this purpose.

{panel:title=original bug report}
I haven't been able to make sense of this yet, but what i'm seeing in a new SolrCloudTestCase subclass i'm writing is that the code below, which (reasonably) attempts to create a collection immediately after configuring the MiniSolrCloudCluster gets a "SolrServerException: No live SolrServers available to handle this request" -- in spite of the fact, that (as far as i can tell at first glance) MiniSolrCloudCluster's constructor is suppose to block until all the servers are live..

{code}
    configureCluster(numServers)
      .addConfig(configName, configDir.toPath())
      .configure();
    Map<String, String> collectionProperties = ...;
    assertNotNull(cluster.createCollection(COLLECTION_NAME, numShards, repFactor,
                                           configName, null, null, collectionProperties));
{code}
{panel}

  was:
I haven't been able to make sense of this yet, but what i'm seeing in a new SolrCloudTestCase subclass i'm writing is that the code below, which (reasonably) attempts to create a collection immediately after configuring the MiniSolrCloudCluster gets a "SolrServerException: No live SolrServers available to handle this request" -- in spite of the fact, that (as far as i can tell at first glance) MiniSolrCloudCluster's constructor is suppose to block until all the servers are live..

{code}
    configureCluster(numServers)
      .addConfig(configName, configDir.toPath())
      .configure();
    Map<String, String> collectionProperties = ...;
    assertNotNull(cluster.createCollection(COLLECTION_NAME, numShards, repFactor,
                                           configName, null, null, collectionProperties));
{code}


    Component/s:     (was: Tests)
        Summary: /live_nodes is populated too early to be very useful for clients -- CloudSolrClient (and MiniSolrCloudCluster.createCollection) need some other ephemeral zk node to knowwhich servers are "ready"  (was: MiniSolrCloudCluster.createCollection can complain there are no live servers immediately after construction)

> /live_nodes is populated too early to be very useful for clients -- CloudSolrClient (and MiniSolrCloudCluster.createCollection) need some other ephemeral zk node to knowwhich servers are "ready"
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-8862
>                 URL: https://issues.apache.org/jira/browse/SOLR-8862
>             Project: Solr
>          Issue Type: Bug
>            Reporter: Hoss Man
>
> {{/live_nodes}} is populated surprisingly early (and multiple times) in the life cycle of a sole node startup, and as a result probably shouldn't be used by {{CloudSolrClient}} (or other "smart" clients) for deciding what servers are fair game for requests.
> we should either fix {{/live_nodes}} to be created later in the lifecycle, or add some new ZK node for this purpose.
> {panel:title=original bug report}
> I haven't been able to make sense of this yet, but what i'm seeing in a new SolrCloudTestCase subclass i'm writing is that the code below, which (reasonably) attempts to create a collection immediately after configuring the MiniSolrCloudCluster gets a "SolrServerException: No live SolrServers available to handle this request" -- in spite of the fact, that (as far as i can tell at first glance) MiniSolrCloudCluster's constructor is suppose to block until all the servers are live..
> {code}
>     configureCluster(numServers)
>       .addConfig(configName, configDir.toPath())
>       .configure();
>     Map<String, String> collectionProperties = ...;
>     assertNotNull(cluster.createCollection(COLLECTION_NAME, numShards, repFactor,
>                                            configName, null, null, collectionProperties));
> {code}
> {panel}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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