[ https://issues.apache.org/jira/browse/SOLR-17804?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18004635#comment-18004635 ]
ASF subversion and git services commented on SOLR-17804: -------------------------------------------------------- Commit 51300844f8b7a98ccb60631b693063bd50bd9dd8 in solr's branch refs/heads/branch_9_9 from Andrzej Bialecki [ https://gitbox.apache.org/repos/asf?p=solr.git;h=51300844f8b ] SOLR-17804: re-create SolrClient if closed. (#3425) > CrossDC Consumer tries to reuse an already closed SolrClient > ------------------------------------------------------------ > > Key: SOLR-17804 > URL: https://issues.apache.org/jira/browse/SOLR-17804 > Project: Solr > Issue Type: Bug > Components: module - crossDC > Affects Versions: 9.8.1 > Reporter: Andrzej Bialecki > Assignee: Andrzej Bialecki > Priority: Major > Labels: pull-request-available > Fix For: 9.9 > > Time Spent: 1h 20m > Remaining Estimate: 0h > > When network is down for a while a CloudSolrClient used by the Consumer > application becomes unusable because its ZkClientStateProvider gets closed: > {code:java} > 272746 ERROR (KafkaCrossDcConsumerWorker) [n: c:ab-test s: r: x: t:] > o.a.s.c.m.SolrMessageProcessor Unable to connect to solr server. Not > consuming. > > => org.apache.solr.common.AlreadyClosedException > > > > at > org.apache.solr.client.solrj.impl.ZkClientClusterStateProvider.getZkStateReader(ZkClientClusterStateProvider.java:222) > > > org.apache.solr.common.AlreadyClosedException: null > > > > at > org.apache.solr.client.solrj.impl.ZkClientClusterStateProvider.getZkStateReader(ZkClientClusterStateProvider.java:222) > > > at > org.apache.solr.client.solrj.impl.ZkClientClusterStateProvider.connect(ZkClientClusterStateProvider.java:217) > > > at > org.apache.solr.client.solrj.impl.CloudSolrClient.connect(CloudSolrClient.java:364) > > > at > org.apache.solr.crossdc.messageprocessor.SolrMessageProcessor.connectToSolrIfNeeded(SolrMessageProcessor.java:363) > > > at > org.apache.solr.crossdc.messageprocessor.SolrMessageProcessor.handleItem(SolrMessageProcessor.java:74) > > > at > org.apache.solr.crossdc.consumer.KafkaCrossDcConsumer.lambda$sendBatch$2(KafkaCrossDcConsumer.java:375) > > > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) [?:?] > > > > at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] > > > > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > [?:?] > > > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > [?:?] > > > at java.lang.Thread.run(Thread.java:829) [?:?] {code} > The Consumer keeps trying to use this client instance, which results in > multiple errors and no recovery without restarting the Consumer application. > The immediate fix is for the Consumer to try to recover from this state by > re-creating the SolrClient. > A broader question (to address in another ticket) is what should be the > proper behavior of CloudSolrClient when its ClusterStateProvider gets closed > - IMHO the client should be closed too. > -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@solr.apache.org For additional commands, e-mail: issues-h...@solr.apache.org