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:31:40 GMT
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