Timothy Potter created SOLR-15587:
-------------------------------------
Summary: Replicas end up with base_url as http on client side even
if cluster state says https when using the HttpClusterStateProvider
Key: SOLR-15587
URL: https://issues.apache.org/jira/browse/SOLR-15587
Project: Solr
Issue Type: Bug
Security Level: Public (Default Security Level. Issues are Public)
Components: SolrJ
Affects Versions: 8.8.2, 8.8.1, 8.9, 8.8
Reporter: Timothy Potter
Assignee: Timothy Potter
Assuming you have a SolrCloud cluster with TLS enabled and are instantiating a
CloudSolrClient using a Solr URL vs. ZK connection string, then the changes
made for SOLR-12182 in 8.8.0 have introduced a bug where the {{base_url}} for
replicas in the {{ClusterState}} returned by the {{HttpClusterStateProvider}}
have url scheme {{http}} instead of {{https}} when the global singleton
{{UrlScheme.INSTANCE}} is not set to {{https}}. This does NOT impact
{{ClusterState}} returned by the {{ZkClusterStateProvider}} because the
{{ZkStateReader}} calls {{UrlScheme.INSTANCE.setUrlScheme("https")}}.
The easiest work-around for now is for client applications to call:
{code}
UrlScheme.INSTANCE.setUrlScheme(UrlScheme.HTTPS);
{code}
Before creating SolrJ client objects such as CloudSolrClient.
I think the proper fix would be to call putIfAbsent in Replica ctor:
{code}
propMap.putIfAbsent(BASE_URL_PROP,
UrlScheme.INSTANCE.getBaseUrlForNodeName(this.nodeName));
{code}
but need to run all existing tests and create a new unit test for this
situation.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]