lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Munendra S N (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (SOLR-13187) NullPointerException at o.a.solr.search.QParser.getParser
Date Sat, 01 Jun 2019 05:43:00 GMT

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

Munendra S N commented on SOLR-13187:
-------------------------------------

 [^SOLR-13187.patch] 
I have moved the null check to QParser so that function queries parsing, rank queries and
etc are also covered. Also, moved the test to QueryParsingTest as this failure not limited
to QueryComponent.

[~Charles Sanders] [~mkhludnev]
Like other error messages, I wanted to include parameter for which getParser failed, but parameter
name is not available to the getParser.

> NullPointerException at o.a.solr.search.QParser.getParser
> ---------------------------------------------------------
>
>                 Key: SOLR-13187
>                 URL: https://issues.apache.org/jira/browse/SOLR-13187
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>    Affects Versions: master (9.0)
>         Environment: h1. Steps to reproduce
> * Use a Linux machine.
> *  Build commit {{ea2c8ba}} of Solr as described in the section below.
> * Build the films collection as described below.
> * Start the server using the command {{./bin/solr start -f -p 8983 -s /tmp/home}}
> * Request the URL given in the bug description.
> h1. Compiling the server
> {noformat}
> git clone https://github.com/apache/lucene-solr
> cd lucene-solr
> git checkout ea2c8ba
> ant compile
> cd solr
> ant server
> {noformat}
> h1. Building the collection
> We followed [Exercise 2|http://lucene.apache.org/solr/guide/7_5/solr-tutorial.html#exercise-2]
from the [Solr Tutorial|http://lucene.apache.org/solr/guide/7_5/solr-tutorial.html]. The attached
file ({{home.zip}}) gives the contents of folder {{/tmp/home}} that you will obtain by following
the steps below:
> {noformat}
> mkdir -p /tmp/home
> echo '<?xml version="1.0" encoding="UTF-8" ?><solr></solr>' > /tmp/home/solr.xml
> {noformat}
> In one terminal start a Solr instance in foreground:
> {noformat}
> ./bin/solr start -f -p 8983 -s /tmp/home
> {noformat}
> In another terminal, create a collection of movies, with no shards and no replication,
and initialize it:
> {noformat}
> bin/solr create -c films
> curl -X POST -H 'Content-type:application/json' --data-binary '{"add-field": {"name":"name",
"type":"text_general", "multiValued":false, "stored":true}}' http://localhost:8983/solr/films/schema
> curl -X POST -H 'Content-type:application/json' --data-binary '{"add-copy-field" : {"source":"*","dest":"_text_"}}'
http://localhost:8983/solr/films/schema
> ./bin/post -c films example/films/films.json
> {noformat}
>            Reporter: Cesar Rodriguez
>            Priority: Minor
>              Labels: diffblue, newdev
>         Attachments: SOLR-13187.patch, SOLR-13187.patch, home.zip
>
>
> Requesting the following URL causes Solr to return an HTTP 500 error response:
> {noformat}
> http://localhost:8983/solr/films/select?fq={!a}
> {noformat}
> The error response seems to be caused by the following uncaught exception:
> {noformat}
> java.lang.NullPointerException
> 	at org.apache.solr.search.QParser.getParser(QParser.java:367)
> 	at org.apache.solr.search.QParser.getParser(QParser.java:319)
> 	at org.apache.solr.search.QParser.getParser(QParser.java:309)
> 	at org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:203)
> 	at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:272)
> 	at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199)
> 	at org.apache.solr.core.SolrCore.execute(SolrCore.java:2559)
> 	at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:711)
> 	at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:516)
> 	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:394)
> 	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:340)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1602)
> [...]
> {noformat}
> The call to {{getQueryPlugin}} from {{org.apache.solr.search.QParser.getParser()}}, at
line 366, can return a null pointer, as witnessed by the URL above. Method {{getParser}} should
probably check for this.
> We found this bug using [Diffblue Microservices Testing|https://www.diffblue.com/labs/].
Find more information on this [fuzz testing campaign|https://www.diffblue.com/blog/2018/12/19/diffblue-microservice-testing-a-sneak-peek-at-our-early-product-and-results].



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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


Mime
View raw message