[
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: [email protected]
For additional commands, e-mail: [email protected]