Andrzej Bialecki created SOLR-17804:
---------------------------------------

             Summary: 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


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

Reply via email to