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

Yonik Seeley edited comment on SOLR-11512 at 10/19/17 10:20 PM:
----------------------------------------------------------------

Yes, dismax should not parse embedded different query types.
Part of edismax was meant to be a superset of the Lucene query parser, although 
there should be a parameter to disable it.
edit: a flag to disable would also be useful for the Lucene parser itself I 
think.


was (Author: ysee...@gmail.com):
Yes, dismax should not parse embedded different query types.
Part of edismax was meant to be a superset of the Lucene query parser, although 
there should be a parameter to disable it.

> Infinite parsing loop possible with edismax bq and local-params
> ---------------------------------------------------------------
>
>                 Key: SOLR-11512
>                 URL: https://issues.apache.org/jira/browse/SOLR-11512
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>    Affects Versions: 7.1
>            Reporter: Will Currie
>            Priority: Minor
>         Attachments: SOLR-11512.patch
>
>
> The following query against the techproducts example puts solr into an 
> infinite loop:
> {noformat}
> curl -g -v 
> 'http://localhost:8983/solr/techproducts/select?q=*&defType=edismax&qq={!edismax+v=something}&bq={!edismax+v=$qq}
> {noformat}
> Problem doesn't depend on the collection, just an easy example. I guess I'd 
> expect a failure with "Infinite Recursion detected parsing query ..." 
> instead. So depending on the query config a user typing {!edismax v=whatever} 
> into a search box can send a solr instance to 100% cpu.
> I can reproduce using TestExtendedDismaxParser by adding:
> {code}
>   @Test
>   public void loopsForever() throws Exception {
>     assertJQ(req("defType", "edismax", "q", "*", "qq", "{!edismax 
> v=something}", "bq", "{!edismax v=$qq}"));
>   }
> {code}
> The code seems to hit QParser.checkRecurse() and try to fail but something 
> sends it around for another try. Repeat.
> Given the complexity of the parsing code there may well be other examples. 
> There's no way to disable the local params syntax is there? Question was 
> asked in SOLR-4197.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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

Reply via email to