lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joel Bernstein <joels...@gmail.com>
Subject Re: Parallel SQL Interface returns "java.lang.NullPointerException" after reloading collection
Date Tue, 03 May 2016 14:41:12 GMT
I opened SOLR-9059.

Joel Bernstein
http://joelsolr.blogspot.com/

On Tue, May 3, 2016 at 10:31 AM, Joel Bernstein <joelsolr@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 <joelsolr@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 <risdenk@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 <joelsolr@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.yacyshyn@gmail.com>
>>> > wrote:
>>> >
>>> > > Yes stack trace can be found here:
>>> > >
>>> > > http://pastie.org/10821638
>>> > >
>>> > >
>>> > >
>>> > > On Mon, 2 May 2016 at 01:05 Joel Bernstein <joelsolr@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.yacyshyn@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
>>> > > > >
>>> > > >
>>> > >
>>> >
>>>
>>
>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message