lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Grant Ingersoll (Commented) (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SOLR-1730) Solr fails to start if QueryElevationComponent config is missing
Date Wed, 07 Dec 2011 17:52:43 GMT

    [ 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-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message