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

Bruno Roustant commented on SOLR-17574:
---------------------------------------

I think I was misled at the PR time by the ClusterState javadoc that says 
"Immutable state of the cloud", whereas there is this setLiveNodes() method.

I agree, the host allow list would rather be computed and cached in 
AllowListUrlChecker. If we change the ClusterState.setLiveNodes() method to 
copy the parameter set in a new unmodifiable set, then AllowListUrlChecker can 
quickly check the ClusterState.getLiveNodes() object ref for change.

> ClusterState getHostAllowList isn't always updated when live nodes change
> -------------------------------------------------------------------------
>
>                 Key: SOLR-17574
>                 URL: https://issues.apache.org/jira/browse/SOLR-17574
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: SolrCloud
>    Affects Versions: 8.8.2
>            Reporter: David Smiley
>            Priority: Major
>
> ClusterState.getHostAllowList was introduced in SOLR-15217 to validate a host 
> may be reached for distributed-search.  But it's a cached value computed from 
> the live nodes, and the live nodes may change.  Thus it can happen that a new 
> live node arrives, gets replicas, and suddenly, distributed-search fails with 
> a 403 ("Forbidden"), with an error string containing this substring: "is 
> neither a live node of the cluster nor in the configured".



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to