Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
None
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.
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..
configureCluster(numServers) .addConfig(configName, configDir.toPath()) .configure(); Map<String, String> collectionProperties = ...; assertNotNull(cluster.createCollection(COLLECTION_NAME, numShards, repFactor, configName, null, null, collectionProperties));