Ryan, there is a patch (for the master branch) up on SOLR-9059 that resolves the issue. This will be in 6.1 and 6.0.1 if there is one. Thanks for the bug report!
Joel Bernstein http://joelsolr.blogspot.com/ On Tue, May 3, 2016 at 10:41 AM, Joel Bernstein <joels...@gmail.com> wrote: > I opened SOLR-9059. > > Joel Bernstein > http://joelsolr.blogspot.com/ > > On Tue, May 3, 2016 at 10:31 AM, Joel Bernstein <joels...@gmail.com> > wrote: > >> What I believe is happening is that the core is closing on the reload, >> which is triggering the closeHook and shutting down all the connections in >> SolrClientCache. >> >> When the core reopens the connections are all still closed because the >> SolrClientCache is instantiated statically with the creation of the >> StreamHandler. >> >> So I think the correct fix is to create the SolrClientCache in inform(), >> that way it will get recreated with each reload. As long as the closeHook >> has closed the existing SolrClientCache this shouldn't cause any connection >> leaks with reloads. >> >> >> >> >> Joel Bernstein >> http://joelsolr.blogspot.com/ >> >> On Tue, May 3, 2016 at 10:01 AM, Joel Bernstein <joels...@gmail.com> >> wrote: >> >>> I'll look into this today. >>> >>> Joel Bernstein >>> http://joelsolr.blogspot.com/ >>> >>> On Tue, May 3, 2016 at 9:22 AM, Kevin Risden <risd...@avalonconsult.com> >>> wrote: >>> >>>> What I think is happening is that since the CloudSolrClient is from the >>>> SolrCache and the collection was reloaded. zkStateReader is actually >>>> null >>>> since there was no cloudSolrClient.connect() call after the reload. I >>>> think >>>> that would cause the NPE on anything that uses the zkStateReader like >>>> getClusterState(). >>>> >>>> ZkStateReader zkStateReader = cloudSolrClient.getZkStateReader(); >>>> ClusterState clusterState = zkStateReader.getClusterState(); >>>> >>>> >>>> Kevin Risden >>>> Apache Lucene/Solr Committer >>>> Hadoop and Search Tech Lead | Avalon Consulting, LLC >>>> <http://www.avalonconsult.com/> >>>> M: 732 213 8417 >>>> LinkedIn <http://www.linkedin.com/company/avalon-consulting-llc> | >>>> Google+ >>>> <http://www.google.com/+AvalonConsultingLLC> | Twitter >>>> <https://twitter.com/avalonconsult> >>>> >>>> >>>> ------------------------------------------------------------------------------------------------------------- >>>> This message (including any attachments) contains confidential >>>> information >>>> intended for a specific individual and purpose, and is protected by >>>> law. If >>>> you are not the intended recipient, you should delete this message. Any >>>> disclosure, copying, or distribution of this message, or the taking of >>>> any >>>> action based on it, is strictly prohibited. >>>> >>>> On Mon, May 2, 2016 at 9:58 PM, Joel Bernstein <joels...@gmail.com> >>>> wrote: >>>> >>>> > Looks like the loop below is throwing a Null pointer. I suspect the >>>> > collection has not yet come back online. In theory this should be self >>>> > healing and when the collection comes back online it should start >>>> working >>>> > again. If not then that would be a bug. >>>> > >>>> > for(String col : clusterState.getCollections()) { >>>> > >>>> > >>>> > Joel Bernstein >>>> > http://joelsolr.blogspot.com/ >>>> > >>>> > On Mon, May 2, 2016 at 10:06 PM, Ryan Yacyshyn < >>>> ryan.yacys...@gmail.com> >>>> > wrote: >>>> > >>>> > > Yes stack trace can be found here: >>>> > > >>>> > > http://pastie.org/10821638 >>>> > > >>>> > > >>>> > > >>>> > > On Mon, 2 May 2016 at 01:05 Joel Bernstein <joels...@gmail.com> >>>> wrote: >>>> > > >>>> > > > Can you post your stack trace? I suspect this has to do with how >>>> the >>>> > > > Streaming API is interacting with SolrCloud. We can probably also >>>> > create >>>> > > a >>>> > > > jira ticket for this. >>>> > > > >>>> > > > Joel Bernstein >>>> > > > http://joelsolr.blogspot.com/ >>>> > > > >>>> > > > On Sun, May 1, 2016 at 4:02 AM, Ryan Yacyshyn < >>>> ryan.yacys...@gmail.com >>>> > > >>>> > > > wrote: >>>> > > > >>>> > > > > Hi all, >>>> > > > > >>>> > > > > I'm exploring with parallel SQL queries and found something >>>> strange >>>> > > after >>>> > > > > reloading the collection: the same query will return a >>>> > > > > java.lang.NullPointerException error. Here are my steps on a >>>> fresh >>>> > > > install >>>> > > > > of Solr 6.0.0. >>>> > > > > >>>> > > > > *Start Solr in cloud mode with example* >>>> > > > > bin/solr -e cloud -noprompt >>>> > > > > >>>> > > > > *Index some data* >>>> > > > > bin/post -c gettingstarted example/exampledocs/*.xml >>>> > > > > >>>> > > > > *Send query, which works* >>>> > > > > curl --data-urlencode 'stmt=select id,name from gettingstarted >>>> where >>>> > > > > inStock = true limit 2' >>>> > http://localhost:8983/solr/gettingstarted/sql >>>> > > > > >>>> > > > > *Reload the collection* >>>> > > > > curl ' >>>> > > > > >>>> > > > > >>>> > > > >>>> > > >>>> > >>>> http://localhost:8983/solr/admin/collections?action=RELOAD&name=gettingstarted >>>> > > > > ' >>>> > > > > >>>> > > > > After reloading, running the exact query above will return the >>>> null >>>> > > > pointer >>>> > > > > exception error. Any idea why? >>>> > > > > >>>> > > > > If I stop all Solr severs and restart, then it's fine. >>>> > > > > >>>> > > > > *java -version* >>>> > > > > java version "1.8.0_25" >>>> > > > > Java(TM) SE Runtime Environment (build 1.8.0_25-b17) >>>> > > > > Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode) >>>> > > > > >>>> > > > > Thanks, >>>> > > > > Ryan >>>> > > > > >>>> > > > >>>> > > >>>> > >>>> >>> >>> >> >