[ 
https://issues.apache.org/jira/browse/SOLR-1730?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13164575#comment-13164575
 ] 

Grant Ingersoll commented on SOLR-1730:
---------------------------------------

The NPE is due to the fact that we initListeners() then we call getSearcher() 
which creates the new searcher and registers a Future/Callable on those 
listeners passing in "this" (i.e. the partially constructed core that is about 
to fail), then later, when the core fails, there is still an 
thread/future/callable waiting to fire off the newSearcher event which it does 
as soon as the CountDownLatch is released.  Little does it know, the core is 
actually dead.  I don't particularly think we need to fix this other than to 
perhaps document it here, as I think, since things are undefined at this point 
b/c the core is dead, that we shouldn't care too much about these side 
consequences.
                
> Solr fails to start if QueryElevationComponent config is missing
> ----------------------------------------------------------------
>
>                 Key: SOLR-1730
>                 URL: https://issues.apache.org/jira/browse/SOLR-1730
>             Project: Solr
>          Issue Type: Bug
>          Components: SearchComponents - other
>    Affects Versions: 1.4
>            Reporter: Mark Miller
>            Assignee: Grant Ingersoll
>              Labels: newdev
>             Fix For: 3.6, 4.0
>
>         Attachments: SOLR-1730.patch
>
>
> QueryElevationComponent tries to do preload some data if its config file does 
> not exist:
> {code}
>         if (!exists){
>           // preload the first data
>           RefCounted<SolrIndexSearcher> searchHolder = null;
>           try {
>             searchHolder = core.getNewestSearcher(false);
>             IndexReader reader = searchHolder.get().getReader();
>             getElevationMap( reader, core );
>           } finally {
>             if (searchHolder != null) searchHolder.decref();
>           }
>         }
> {code}
> This does not work though, as asking for the newest searcher causes a request 
> to be submitted to Solr before its ready to handle it:
> {code}
>      [java] SEVERE: java.lang.NullPointerException
>      [java]   at 
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:173)
>      [java]   at 
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
>      [java]   at org.apache.solr.core.SolrCore.execute(SolrCore.java:1317)
>      [java]   at 
> org.apache.solr.core.QuerySenderListener.newSearcher(QuerySenderListener.java:52)
>      [java]   at org.apache.solr.core.SolrCore$3.call(SolrCore.java:1147)
>      [java]   at 
> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>      [java]   at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> {code}
> The SearchHandler has not yet been core informed (as the 
> QueryElevationComponent causes this as its getting core informed right before 
> the SearchHandler) and so its components arraylist is still null.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to