[ 
https://issues.apache.org/jira/browse/SOLR-5386?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chris M. Hostetter updated SOLR-5386:
-------------------------------------
    Attachment: SOLR-5386-1.patch
        Status: Reopened  (was: Reopened)


I audited all of the usages of {{LocalSolrQueryRequest}}...

* several i switched to use the new {{subRequest}} helper
* many are situations that don't have an "original" request (recovery or other 
background admin actions) or apply to "cross core" situations
* in one case -- {{CollapsingQParserPlugin}} i _wanted_ to use {{subRequest}}, 
but the way the code is organized, the place that the {{LocalSolrQueryRequest}} 
is created doesn't have access to the original request -- but it does have 
access to the original {{SolrIndexSearcher}}
* I also realized that the "make an anonymous subclass of 
{{LocalSolrQueryRequest}} using an explicitly known {{SolrIndexSearcher}}" 
pattern that exists in {{QuerySenderListener}} was copy pasted in 
{{SolrIndexSearcher}}

So I:
* added another (static) helper to {{SolrQueryRequest}} that can create a new 
{{SolrQueryRequest}} from an existing {{SolrIndexSearcher}}
** used this in {{CollapsingQParserPlugin}} as well
* fleshed out all the (nocommit) javadocs



I think this is good to go




> firstSearcher warming can deadlock on queries that use LocalSolrQueryRequest 
> internally -- notably spellcheck.maxCollationTries
> -------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SOLR-5386
>                 URL: https://issues.apache.org/jira/browse/SOLR-5386
>             Project: Solr
>          Issue Type: Bug
>          Components: spellchecker
>    Affects Versions: 4.5, 4.4
>            Reporter: Jeroen Steggink
>            Assignee: Chris M. Hostetter
>            Priority: Major
>              Labels: collate, maxCollationTries, spellcheck
>         Attachments: SOLR-5386-1.patch, SOLR-5386.patch, 
> Solr5386SpellCheckerHangThreadDump.txt, threaddump.log
>
>
>  
> Any Solr search related code that uses {{LocalSolrQueryRequest}} to create a 
> "sub request" (notably spellcheck with {{maxCollationTries}}) can cause 
> deadlock on core load if it is used in a {{firstSearcher}} warming query, 
> because {{LocalSolrQueryRequest}} (via inheritance from 
> {{SolrQueryRequestBase}} ) attempts to get the latest registered searcher 
> from the {{SolrCore}} -- but this will block until the {{firstSearcher}} is 
> registered, creating a deadlock loop.
> {panel:title=Original Bug Report}
> When spellcheck.maxCollationTries is set (>0) Solr hangs in combination with 
> that requestHandler set to default="true".
> When I make another requestHandler default, one without the 
> maxCollationTries, all requestHandlers work just fine.
> {panel}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to