[
https://issues.apache.org/jira/browse/RANGER-3947?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Madhan Neethiraj updated RANGER-3947:
-------------------------------------
Fix Version/s: 3.0.0
2.5.0
> Thread leak because of retry loop in SolrCollectionBootstrapper
> ---------------------------------------------------------------
>
> Key: RANGER-3947
> URL: https://issues.apache.org/jira/browse/RANGER-3947
> Project: Ranger
> Issue Type: Bug
> Components: admin
> Affects Versions: 2.3.0
> Reporter: Sai Sandeep
> Priority: Major
> Fix For: 3.0.0, 2.5.0
>
>
> SolrCollectionBootstrapper Tries to connect to solr cloud and tries upload
> ranger_audits config and create ranger_audits collection in a loop. We found
> that in our case uploadConfiguration keeps on failing and because of that is
> stuck in retry loop.
> but because of that it calls connect in a loop which creates new solr cloud
> client every time. but this solr cloud client is never closed so related
> connection pools and zk connections are also never closed. because of this
> number of threads keeps increasing until it crashes.
> Related code:
> {code:java}
> while (!is_completed && (max_retry == TRY_UNTIL_SUCCESS || retry_counter <
> max_retry)) {
> try {
> if (connect(zookeeperHosts)) {
> if (solr_cloud_mode) {
> if (uploadConfiguration() && createCollection()
> ) {
> is_completed = true;
> break;
> } else {
> logErrorMessageAndWait(
> "Error while performing operations on solr. ",
> null);
> }
> } } else {
> logErrorMessageAndWait(
> "Cannot connect to solr kindly check the solr related
> configs. ",
> null);
> }
> } catch (Exception ex) {
> logErrorMessageAndWait("Error while configuring solr. ", ex);
> }
> }{code}
> {code:java}
> private boolean connect(List<String> zookeeperHosts) {
> try {
> logger.info("Solr is in Cloud mode");
> if (isKERBEROS) {
> setHttpClientBuilderForKrb();
> }
> solrCloudClient = new CloudSolrClient.Builder(zookeeperHosts,
> Optional.empty()).build();
> solrCloudClient.setDefaultCollection(solr_collection_name);
> solrCloudClient.connect();
> zkClient = solrCloudClient.getZkStateReader().getZkClient();
> solrClient = solrCloudClient;
> solr_cloud_mode = true; return true;
> } catch (Exception ex) {
> logger.severe("Can't connect to Solr server. ZooKeepers="
> + zookeeperHosts + ", collection=" + solr_collection_name
> + ex);
> return false;
> }
> } {code}
> I think if we close the solrCloudClient in the loop then it should fix the
> bug
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)