Details
Description
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:
UrlScheme.INSTANCE.setUrlScheme(UrlScheme.HTTPS);
Before creating SolrJ client objects such as CloudSolrClient.
I think the proper fix would be to call putIfAbsent in Replica ctor:
propMap.putIfAbsent(BASE_URL_PROP, UrlScheme.INSTANCE.getBaseUrlForNodeName(this.nodeName));
but need to run all existing tests and create a new unit test for this situation.
Attachments
Issue Links
- fixes
-
SOLR-15364 Race condition when maintaining multiple CloudSolrClients for a mix of HTTP/HTTPS clusters
- Closed
- is caused by
-
SOLR-12182 Can not switch urlScheme in 7x if there are any cores in the cluster
- Reopened
- links to