Hello Susheel, Yes, the closing happens only at the end of the checking cycle. I asked my colleague about the firewall and he is positive everything is allowed between those nodes. I also cannot completely drop the firewall between those nodes to be sure, because the problem is very hard to reproduce; it pops up once in a while, sometimes not for weeks, today already a couple of times.
It is locally unreproducible but we're going to try to reproduce it in our development environment. So i have to get back to the problem in a few weeks from now. Number of requests is sometimes, briefly, very high. Usually very low. These specific checks are executed in order, not concurrently. Thanks, Markus -----Original message----- > From:Susheel Kumar <susheel2...@gmail.com> > Sent: Tuesday 18th July 2017 15:17 > To: solr-user@lucene.apache.org > Subject: Re: SolrJ 6.6.0 Connection pool shutdown now with stack trace > > Then most likely its due to closing of connection as mentioned above though > you said it's not happening in that part of your code. To rule out > firewall possibility, you can test in some other/local env. Also how many > requests/client/connections happening concurrently. > > Thanks, > Susheel > > On Tue, Jul 18, 2017 at 8:43 AM, Markus Jelsma <markus.jel...@openindex.io> > wrote: > > > Hello Susheel, > > > > No, nothing at all. I've check all six nodes, they are clean. > > > > Thanks, > > Markus > > > > > > > > -----Original message----- > > > From:Susheel Kumar <susheel2...@gmail.com> > > > Sent: Tuesday 18th July 2017 14:30 > > > To: solr-user@lucene.apache.org > > > Subject: Re: SolrJ 6.6.0 Connection pool shutdown now with stack trace > > > > > > Do you see any errors etc. in solr.log during this time? > > > > > > On Tue, Jul 18, 2017 at 7:10 AM, Markus Jelsma < > > markus.jel...@openindex.io> > > > wrote: > > > > > > > The problem was never resolved but Shawn asked for the stack trace, > > here > > > > it is: > > > > > > > > org.apache.solr.client.solrj.SolrServerException: java.lang. > > IllegalStateException: > > > > Connection pool shut down > > > > at org.apache.solr.client.solrj.impl.LBHttpSolrClient. > > > > doRequest(LBHttpSolrClient.java:485) > > > > at org.apache.solr.client.solrj.impl.LBHttpSolrClient.request( > > > > LBHttpSolrClient.java:388) > > > > at org.apache.solr.client.solrj.impl.CloudSolrClient. > > > > sendRequest(CloudSolrClient.java:1383) > > > > at org.apache.solr.client.solrj.impl.CloudSolrClient. > > > > requestWithRetryOnStaleState(CloudSolrClient.java:1134) > > > > at org.apache.solr.client.solrj.impl.CloudSolrClient.request( > > > > CloudSolrClient.java:1073) > > > > at org.apache.solr.client.solrj.SolrRequest.process( > > SolrRequest.java:160) > > > > at org.apache.solr.client.solrj.SolrClient.query(SolrClient.java:942) > > > > at org.apache.solr.client.solrj.SolrClient.getById(SolrClient. > > java:1173) > > > > at org.apache.solr.client.solrj.SolrClient.getById(SolrClient. > > java:1090) > > > > at org.apache.solr.client.solrj.SolrClient.getById(SolrClient. > > java:1110) > > > > ..internal method calling getById().. > > > > at java.lang.Thread.run(Thread.java:748) > > > > Caused by: java.lang.IllegalStateException: Connection pool shut down > > > > at org.apache.http.util.Asserts.check(Asserts.java:34) > > > > at org.apache.http.pool.AbstractConnPool.lease( > > AbstractConnPool.java:184) > > > > at org.apache.http.pool.AbstractConnPool.lease( > > AbstractConnPool.java:217) > > > > at org.apache.http.impl.conn.PoolingClientConnectionManager > > > > .requestConnection(PoolingClientConnectionManager.java:184) > > > > at org.apache.http.impl.client.DefaultRequestDirector.execute( > > > > DefaultRequestDirector.java:415) > > > > at org.apache.http.impl.client.AbstractHttpClient.doExecute( > > > > AbstractHttpClient.java:882) > > > > at org.apache.http.impl.client.CloseableHttpClient.execute( > > > > CloseableHttpClient.java:82) > > > > at org.apache.http.impl.client.CloseableHttpClient.execute( > > > > CloseableHttpClient.java:55) > > > > at org.apache.solr.client.solrj.impl.HttpSolrClient. > > > > executeMethod(HttpSolrClient.java:515) > > > > at org.apache.solr.client.solrj.impl.HttpSolrClient.request( > > > > HttpSolrClient.java:279) > > > > at org.apache.solr.client.solrj.impl.HttpSolrClient.request( > > > > HttpSolrClient.java:268) > > > > at org.apache.solr.client.solrj.impl.LBHttpSolrClient. > > > > doRequest(LBHttpSolrClient.java:447) > > > > ... 24 more > > > > > > > > So, to summarize, we have a program checking presence of documents in > > Solr > > > > using getById() and we don't want this exception to bubble up, we want > > > > SolrJ to restore the connection pool just as CloudSolrClient would > > move on > > > > to another node if one went down in the mean time. > > > > > > > > Is this possible? How? > > > > > > > > Many thanks, > > > > Markus > > > > > > > > -----Original message----- > > > > > From:Markus Jelsma <markus.jel...@openindex.io> > > > > > Sent: Thursday 29th June 2017 16:38 > > > > > To: solr-user@lucene.apache.org > > > > > Subject: RE: SolrJ 6.6.0 Connection pool shutdown > > > > > > > > > > Thanks. I probably should have mentioned there is no firewall > > limiting > > > > connections between those hosts. Actually, the processes run on the > > same > > > > hosts as the Solr cluster is running on. > > > > > > > > > > Thanks, > > > > > Markus > > > > > > > > > > > > > > > > > > > > -----Original message----- > > > > > > From:Alexandre Rafalovitch <arafa...@gmail.com> > > > > > > Sent: Thursday 29th June 2017 15:38 > > > > > > To: solr-user <solr-user@lucene.apache.org> > > > > > > Subject: Re: SolrJ 6.6.0 Connection pool shutdown > > > > > > > > > > > > One thing to check is whether there is a firewall between the > > client > > > > > > and the server. They - sometimes - cut the silent connections in > > the > > > > > > _middle_ (at the firewall). The usual solution is keepAlive > > request of > > > > > > some kind or not using the connection pool. > > > > > > > > > > > > One way to check is with network tracer like Wireshark and checking > > > > > > whether the actual hardware at the other end of the connection is a > > > > > > normal server or some sort of unexpected hardware piece of > > equipment > > > > > > (firewall). Yes, that's using the hammer to swat a fly :-) > > > > > > > > > > > > Regards, > > > > > > Alex. > > > > > > ---- > > > > > > http://www.solr-start.com/ - Resources for Solr users, new and > > > > experienced > > > > > > > > > > > > > > > > > > On 29 June 2017 at 08:21, Markus Jelsma < > > markus.jel...@openindex.io> > > > > wrote: > > > > > > > Hi, > > > > > > > > > > > > > > Everything is 6.6.0. I could include a stack trace (i don't print > > > > them in my program), but that would only be the the trace from > > getById() to > > > > CloudSolrClient.requestWithRetryOnStaleState() and little deeper, that > > > > what you're looking for? > > > > > > > > > > > > > > We haven't called close() in that particular part of the program. > > > > > > > > > > > > > > Method requestWithRetryOnStaleState has some retry logic built-in > > > > but doesn't seem to work for the exception i got. > > > > > > > > > > > > > > I'll let it print the stack trace and get back if it happens > > again. > > > > > > > > > > > > > > Thanks, > > > > > > > Markus > > > > > > > > > > > > > > -----Original message----- > > > > > > >> From:Shawn Heisey <apa...@elyograg.org> > > > > > > >> Sent: Tuesday 27th June 2017 23:02 > > > > > > >> To: solr-user@lucene.apache.org > > > > > > >> Subject: Re: SolrJ 6.6.0 Connection pool shutdown > > > > > > >> > > > > > > >> On 6/27/2017 6:50 AM, Markus Jelsma wrote: > > > > > > >> > We have a proces checking presence of many documents in a > > > > collection, just a simple client.getById(id). It sometimes begins > > throwing > > > > lots of these exceptions in a row: > > > > > > >> > > > > > > > >> > org.apache.solr.client.solrj.SolrServerException: java.lang. > > IllegalStateException: > > > > Connection pool shut down > > > > > > >> > > > > > > > >> > Then, as suddenly as it appeared, it's gone again a no longer > > a > > > > problem. I would expect SolrJ not to throw this but to wait until it > > the > > > > connection pool, or whatever mechanism is there, to recover. > > > > > > >> > > > > > > > >> > Did i miss a magic parameter for SolrJ?\ > > > > > > >> > > > > > > >> That error message will be much longer than what you've provided > > > > here. > > > > > > >> It will have a java stacktrace that's typically a dozen or so > > lines > > > > > > >> long. There may also be one or more "Caused by" sections after > > the > > > > > > >> stacktrace, each with a stacktrace of its own. Can you share > > the > > > > full > > > > > > >> error message? Is the server also running 6.6.0, or a different > > > > version? > > > > > > >> > > > > > > >> It would also be helpful if you can share the SolrJ code you've > > > > written, > > > > > > >> cleanly redacted to remove anything sensitive. > > > > > > >> > > > > > > >> That particular message ("Connection pool shut down") sounds > > like it > > > > > > >> probably came from HttpClient, which SolrJ uses ... and I would > > > > expect > > > > > > >> that to only happen if you close/shutdown the HttpClient or the > > > > > > >> SolrClient. After closing, a client can't be used any more. > > > > Normally > > > > > > >> the only time you should close a client is right before exiting > > the > > > > > > >> program, although if the program's about to exit, it's generally > > > > > > >> unnecessary, so in my opinion for *most* usages, closing the > > client > > > > > > >> likely never needs to happen. > > > > > > >> > > > > > > >> Thanks, > > > > > > >> Shawn > > > > > > >> > > > > > > >> > > > > > > > > > > > > > > > > > > > > >