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 15:37:02 GMT
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 <joelsolr@gmail.com> wrote:

> 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